https://www.acmicpc.net/problem/10829
# 이진수 변환
N = int(input())
result = ''
while True:
if N // 2 >= 1: # 몫이 1보다 클 때
result += str(N % 2)
N = N // 2
elif N == 2: # 몫이 2일 때
result += str(N % 2) + str(N // 2) # 2로 나눈 나머지 + 몫 더하기
break
elif N == 1: # 몫이 1일 때
result += str(N % 2) # 2로 나눈 나머지 더하기
break
result = result[::-1] # 문자열 뒤집기
print(result)
# 다른풀이 : 파이썬 2진수 함수
print(bin(int(input()))[2:]) # 앞에 0b가 붙기 때문에 제거해야함
나머지를 저장하다가 마지막에 나머지 + 몫을 더한 후 뒤집어주면 2진수이다.
신기하게도 내 풀이가 시간이 더 적게 들었다.