1. 문제
https://www.acmicpc.net/problem/2089
2089번: -2진수
-2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110
www.acmicpc.net
2. 풀이
import sys
input = sys.stdin.readline
# n : 2진수로 변환할 10진수의 제곱 수
n = int(input())
result = ""
while True:
if n == 0:
result = "0" + result
break
remain = n % -2
n //= -2
if remain == 0:
result = "0" + result
else:
n += 1
result = "1" + result
if n == 0:
break
print(result)
'알고리즘 공부 > 백준' 카테고리의 다른 글
(Python)백준 코딩테스트 연습 - Z(1074) (0) | 2023.06.23 |
---|---|
(Python)백준 코딩테스트 연습 - 물병(1052) (0) | 2023.06.20 |
(Python)백준 코딩테스트 연습 - N번째 큰 수(2075) (0) | 2023.06.06 |
(Python)백준 코딩테스트 연습 - 오목(2072) (0) | 2023.06.02 |
(Python)백준 코딩테스트 연습 - 조합 0의 개수(2004) (0) | 2023.05.26 |