반응형
-풀이
import sys
n = int(sys.stdin.readline())
if n == 0:
print(0)
else:
res = []
while n != 0:
if n%(-2) == 0:
res.append('0')
n = n//(-2)
else:
res.append('1')
n = n//(-2) +1
print(''.join(reversed(res)))
-풀이 설명
[30분 no sol] -2진수 문제가 감이 잘 잡히지 않았다. 구글링을 해서 풀었는데, 입력받은 n 이 0 일때는 0을 출력해주고, 그게 아닐 경우 n 에서 -2를 나눈 나머지가 0일 경우에는 res에 0을 담아주고 n은 n에서 -2를 나눈 몫이 n이 된다.
n 에서 -2를 나눈 나머지가 0이 아닐경우엔 res에 1을 출력해주고 n은 n에서 -2를 나눈 몫에서 1을 더해주면 된다.