https://www.acmicpc.net/problem/2089
문제
접근법
# 도저히 접근법을 모르겠어서 검색해봄. 나중에 다시 풀어보기
-2로 N을 계속 나눠줌.
나머지가 1과 0이 나와야 함.
따라서 0이 나왔을 때는 그대로 진행하여 몫과 나머지 그대로 사용
-1이 나오면 몫에 +1을 해주고 나머지는 1로 처리
나온 나머지들을 앞에서부터 쌓아 ans 만듦.
코드
N=int(input())
ans=''
if N==0:
print(0)
exit()
while N!=0:
if N%-2:
N=N//-2+1
ans='1'+ans
else:
N//=-2
ans='0'+ans
print(int(ans))
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 11005번 진법 변환 2 - 파이썬(Python) (0) | 2021.08.30 |
---|---|
[백준] 17103번 골드바흐 파티션 - 파이썬(Python) (1) | 2021.08.30 |
[백준] 1212번 8진수 2진수 - 파이썬(Python) (0) | 2021.08.26 |
[백준] 1373번 2진수 8진수 - 파이썬(Python) (0) | 2021.08.26 |
[백준] 17087번 숨바꼭질 6 - 파이썬(Python) (0) | 2021.08.23 |