숫자 1/2/4만 사용하는 나라에서 사용할 수 있도록 자연수 n을 변환하는 함수 작성
def solution(n):
answer = ''
while n > 0:
n, m = divmod(n, 3)
answer = "124"[m-1] + answer
if m == 0:
n -= 1
return answer
cf) 처음 3진법으로 변환하는 방법을 떠올리고 나서 한참을 고민했던 코드인데, 3으로 나누어 떨어지는 수에서 몫에 해당하는 값이 자꾸 더해지는 현상이 생겼었다.
열받아서 그냥 나머지가 0일 때 나눠야 하는 수를 1 빼버렸는데, 정상적으로 동작해서 당황했던 코드.
n
이 0 이상일 때까지 순환하는 while
Loop 안에서 n
값을 3으로 나눈 몫으로 업데이트하고 나머지를 m
에 저장"124"
에서 나머지보다 1 작은 수를 인덱스로 하는 값을, 반환할 문자열 answer
의 앞에 더하여 저장0
이 포함되지 않으므로 나머지가 0일 때 n
값을 -1하여 몫을 하나 뺄 수 있도록 함