프로그래머스 - 124 나라의 숫자

hyein song·2022년 7월 31일
0

1, 2, 4 세가지 숫자만 가지고 숫자를 표현하는 문제

🔗문제 링크

💡생각한 풀이법

  1. 숫자가 3종류니까 3진법처럼 3으로 계속 나눈다.
  2. 나눈 나머지를 1, 2, 4로 치환하며 저장
  3. num 리스트의 순서를 거꾸로 변경
  4. 문자열로 return

❗주의해야할 점

  • 다른 진법들과 다르게 0이 존재하지 않기때문에 n 대신 n-1로 계산해야한다.
  • join 메소드 사용 시 리스트의 요소들이 문자여야 하기 때문에 change_dict 의 value들은 숫자가 아닌 문자여야 한다.

🔍 최종 코드


def solution(n):
    change_dict = {0:'1',
                   1:'2',
                   2:'4'}
    num = []
    
    while (n!=0):
        a,b = divmod(n-1,3)
        num.append(change_dict[b])
        n = a
        
    num.reverse()
    
    return ''.join(num)코드를 입력하세요

0개의 댓글