반응형

-풀이

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을 더해주면 된다.

+ Recent posts