Algorithm/programmers/연습문제/level2/124 나라의 숫자 (with python)

yellow·2021년 6월 16일
0

알고리즘 문제

목록 보기
39/58

📖 문제

📝 풀이 과정

  • 124나라에서는 숫자를 1과 2와 4, 총 3개의 숫자로만 표현하기 때문에 3진법을 이용해서 문제를 풀었다.
  • 주어진 n을 계속 3으로 나눈 나머지들을 이용해서 124나라 숫자를 구성했습니다.
    다음 사진의 규칙을 보면,

    3으로 나누었을 때 나머지가 [0, 1, 2]일 때 124나라의 수의 1의 자리수는 각각 [4, 1, 2]임을 알 수 있다.
    그리고 3의 배수인 경우에는 -1을 빼고 몫을 구해야 나머지의 규칙에 맞게 답을 구할 수 있게 된다.
    3으로 나누는 과정을 n이 0이 되기 전까지 반복한다.

⌨ 코드

def solution(n):
    answer = ''
    n124 = ['4', '1', '2']

    while 0 < n:
        r = n % 3
        # n을 3으로 나눈 나머지를 answer의 맨 앞에 붙인다.
        answer = n124[r] + answer
        
        # 만약 n이 3의 배수라면
        if r == 0:
            # n을 (n-1)을 3으로 나눴을 때 몫으로 갱신
            n = (n-1) // 3
        else:
            # n이 3의 배수가 아니라면 n을 n//3으로 갱신
            n //= 3
    return answer
profile
할 수 있어! :)

0개의 댓글