https://programmers.co.kr/learn/courses/30/lessons/12899
주어진 숫자를 3으로 나눈 나머지가 1,2,0에 따라 맨 끝자리가 1,2,4를 가지게 된다.
n=4,5,6의 경우 각각 몫은 1,1,2를 가진다.
기본 로직은 3으로 나누어가면서 나머지에 해당하는 값을 앞에 추가해준다.
예를 들어 n=14라면 n,r=4,2가 되고,
answer의 맨 앞에 2를 추가해준다.
그리고 다시 n=4인 경우... 를 반복한다.
이때 나머지가 0인 경우 몫은 -1을 해준다.
1=3*0+1 -> 1
2=3*0+2 -> 2
3=3*1+0 -> 4
def solution(n):
answer=""
while n:
n,r=divmod(n,3)
answer="412"[r]+answer
if r==0:
n-=1
return (answer)