Reverse Integer
์ฃผ์ด์ง ์ ์๋ฅผ ๋ค์ง์ด์ ๋ฐํํ๋ฉด ๋๋ ๊ฐ๋จํ ๋ฌธ์ ์๋ค.
๋๋ ์ฐ์ ์์์ธ์ง ์์์ธ์ง๋ฅผ ํ๋จํ ํ์,
์์๋ฉด ์์๋ก ๋ฐ๊ฟ์ฃผ๊ณ๋ชซ๊ณผ ๋๋จธ์ง๋ฅผ ์ด์ฉํด์ ์ ์๋ฅผ ๋ค์ง์ด์ฃผ์๋ค.
๋ฌธ์ ๋ ์ด๋ ต์ง ์์์ง๋ง ๊ถ๊ธํ๊ฒ ์๊ฒผ๋ค.
์ ํ์ด๋ฐฉ๋ฒ๋๋ก ํผ ์ฝ๋์์
while๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ์ ์คํ์๊ฐ์ด ๋ง์ด ์ฐจ์ด๋ฌ๋ค.
์์๋๋ก
x > 0
,x
,x != 0
์ ์กฐ๊ฑด์ผ ๋ ์คํ์๊ฐ์ธ๋ฐ
๋ณด๋ค์ํผx != 0
์ผ ๋ ๋ฐํ์์ด ๊ฐ์ฅ ์งง๋ค.์ด์ฐจํผ ์์ ์ ์๋ฅผ ๋ ์ด์ ๋๋ ๋จ์ด์ง์ง ์์ ๋ ๊น์ง 10์ผ๋ก ๋๋๊ฑฐ๊ธฐ ๋๋ฌธ์,
0์ด ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋ฉด ๋๋ค๋ ์๊ฐ๋ง ํ๋๋ฐ,while๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ์ ๋ฐ๋ณต๋ฌธ์ ๋ ๋๋ง๋ค ํ์ธํ๋ ์ ์ฐจ(?)๊ฐ ๋ง์์ง๊ณ ๊ทธ์ ๋ฐ๋ผ ๋ฐํ์์ด ์ฐจ์ด๊ฐ ๋๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ๋ด๊ฐ ์ํ๋ ์กฐ๊ฑด์ ๊ฐ์ฅ ๊ตฌ์ฒด์ ์ผ๋ก ๋ช ์ํx != 0
์ผ ๋๊ฐ ๋ฐํ์์ด ๊ฐ์ฅ ์ ๋ค.
0์ธ์ง๋ง ํ์ธํด์ ๋ฐ๋ณตํ ์ง ์ข ๋ฃํ ์ง ์ ํ๋๊ฑฐ๋ผ์ ๊ทธ๋ฐ๊ฐ??์ด๊ฑด ๊ทธ๋ฅ ๋ด ์ถ์ธก์ธ๋ฐ ์ธ์ด๋, ์ปดํ์ผ๋ฌ๋ณ๋ก ์ฐจ์ด๊ฐ ์์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ๋ด๋ถ์ ์ผ๋ก ์ ํํ ์ด๋ค ์ฐจ์ด์ ์ํด์ ๋ฐํ์์ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋์ง ๊ถ๊ธํ๋ค.
๋๊ฐ ์ข ์๋ ค์ฃผ์ธ์
์ค๋๋ง์ ํฅ๋ฏธ๋ก์ด ๊ณ ๋ฏผ์ ํด๋ณผ ์ ์๋ ์ฌ๋ฏธ์๋ ๋ฌธ์ ์๋ฐ !
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ flag = 1 if x < 0: flag = -1 x *= -1 answer = 0 while x != 0: answer = answer * 10 + x % 10 if answer >= 2 ** 31: return 0 x //= 10 return answer * flag