문제 링크

문제 해설이 아닌 풀이하면서 거쳐간 생각들을 기록하는 글입니다.


문제

자연수 N이 주어진다. N을 이진수로 바꿔서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000)

출력

N을 이진수로 바꿔서 출력한다. 이진수는 0으로 시작하면 안 된다.




접근 과정

이진수에 대한 이해가 있더면 반복문을 쓰든 재귀호출 사용하든 어렵지 않게 해결할 수 있는 문제이다. 빠르게 해결하려다보니 0을 깔끔하게 처리하지 못한 것이 아쉽다.


소스 코드

def decToBin(n):
    if n == 0:
        return

    decToBin(n // 2)
    print((n % 2) & 1, end='')

n = int(input())
if n == 0:
    print(0)
else:
    decToBin(n)