2진수를 구현하는 법을 알고 있었는데 막상 재귀함수로 풀어보려고하니까 잘 생각이 떠오르지 않았다. 핵심 코드는 이렇다.
- 나머지를 2로 나눈다.
- 출력한다.
- 몫을 2로 나눈다.
- 언제까지? n이 1보다 작아질때까지
1905번처럼 빈 리스트에 추가해서 join
함수를 사용했는데, 그럴필요가 없었다. 비록 정답판정을 받았지만 30분동안 삽질하고 다른코드를 보니까 허무(?)했다.
너무 어렵게 생각하지 말자!
# 1번 어렵게 푼 문제
x = 7
result = []
while x != 0:
result.append(x % 2)
x //= 2
print(result)
result = []
def binary(n):
if n == 0:
return print(0)
global result
if n > 1:
binary(n // 2)
result.append(n % 2)
binary(int(input()))
print(''.join(map(str,result)))
# 2번 쉽게 푼 문제
def binary(n):
if n > 1:
binary(n // 2)
return print(n % 2, end='')
binary(10)