Algorithm/Programmers

[Programmers] Lv2. 124 나라의 숫자

by somida 2021. 5. 20.

문제

바로가기

 

코딩테스트 연습 - 124 나라의 숫자

 

programmers.co.kr

 

풀이

  • 규칙성은 3으로 나눴을 때 나머지가 0이면 4, 1이면 1, 2이면 2를 반환한다.
  • 그래서 rule을 ["4", "1", "2"]순으로 두고, n이 존재할 때까지 반복문을 돌린다.
  • n을 3으로 나누고, 나눈 몫을 n으로 두고 나머지를 m으로 둔다.
  • 그리고 rule[m]에 해당하는 값을 answer의 앞자리에 더해준다.
  • 만약 m이 나머지가 0이면 n을 1 감소시켜 준다.(m이 3이라는 의미)

 

코드

def solution(n):
    answer = ''
    rule = ["4", "1", "2"]
    while n:
        n, m = n // 3, n % 3
        answer = rule[m] + answer
        if not m:
            n -= 1
    return answer

 

반응형

댓글