본문 바로가기

코딩테스트/Programmers

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

반응형

문제_

https://school.programmers.co.kr/learn/courses/30/lessons/12899

레벨2

풀이_

  1. 1, 2, 4 3개의 수를 이용한다.
    -> 3진법
  2. 3진법과 달리 3은 자릿수를 바꾸지 않고 4로 표현한다.
    -> 3은 4로, 6은 14로, 9는 24로 표현
  3. n % 3 = 1은 1, n % 3 = 2는, 그리고 n % 3 = 0는 4로 표현된다
    -> [4, 1, 2] 배열의 인덱스가 3으로 나눈 나머지. 배열의 값이 나머지가 나타내는 숫자
  4. 3의 배수의 경우, 자릿수를 바꾸지 않고 같은 자릿수로 표현해야 한다
    -> 다음 숫자를 구할 때 3으로 나누어 떨어지지 않게, 1을 뺀 값을 나눔
def solution(n):
    digits = ('4', '1', '2')
    answer = ''

    while n > 0:
        cur = digits[n % len(digits)]
        answer = cur + answer
        n = int((n - 1) / len(digits))

    return answer

'코딩테스트 > Programmers' 카테고리의 다른 글

[프로그래머스] 시소 짝꿍  (0) 2023.01.22