def solution(n):
    numbers = ['4', '1', '2']
    answer = ''
    while n:
        answer = numbers[n % 3] + answer
        n = n // 3 - (n % 3 == 0)
    return answer
    

if __name__ == "__main__":
    n = int(input())
    print(solution(n))

우선 n이 3의 배수가 아니라면 3진법을 구하는 것과 동일하게 3으로 나눈 나머지를 저장하고, n을 3으로 나눈 몫으로 저장한다.

n이 3의 배수라면 무조건 4를 추가하고, n을 3으로 나눈 몫에서 1을 뺀 값을 저장한다.

위 과정을 마치면 answer에는 숫자가 저장될 것인데 뒤에서부터 구했기 때문에 역순으로 저장되어 있다.

answer[::-1]로 간단하게 다시 역순으로 뒤집을 수 있다.

댓글남기기