[Python][프로그래머스][Level2] 124 나라의 숫자

[Python][프로그래머스][Level2] 124 나라의 숫자

코드

def solution(n):
    answer = ''
    while n>3:
        n, last= divmod(n,3)
        if last==0:
            n-=1
            last=4
        answer=str(last)+answer
    return str(n)+answer if n!=3 else str(4)+answer

특수한 경우를 가진 3진수를 구하는 문제이다.

일반적인 3진수는 0이 맨 앞에 오면 안되기 때문에 3으로 계속해서 나눠주고 나머지를 넣는 방식으로 구할 수 있지만

이 문제는 1,2,4 모두 앞에 올 수 있기 때문에 다른 방식으로 푼다.

나머지가 0인 경우엔 4가 앞에 올 수 있기때문에 1을 빼주고 붙혀준다.

Discussion and feedback