Convert height to US Men’s Jacket size
Python 2, 58 55 52 49 47 45 bytes
-13 bytes with great contributions from Arnauld (thanks!!!), xnor and xash.
Switched from Python 3 to Python 2 for an extra 2 bytes.
Tried to profit from the overlapping regions. You don't even need a size M, because the sizes of S and L don't have a gap between them. Luckily, the number of X's for S and L can be expressed as a linear integer expression.

lambda h:max(173-h&gt;&gt;2,h/3-60)*'X'+'SL'[h&gt;173]

Try it online!
Just for fun (and for educational purposes) the original 58 bytes submission:

lambda h:(-h+173)//4*'X'+'S'if h&lt;174else(h-180)//3*'X'+'L'