파이썬

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

운으로 2022. 8. 30. 21:38

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

<코드>

def solution(n):
    answer = ''
    while n:
        # 3으로 나누었을때 나머지 1이면 1추가, 2면 2추가
        # 나누어 떨어지면 4를 추가
        if n % 3:
            answer += str(n%3)
            n //= 3
        else:
            answer += '4'
            n = (n-1)//3
            
    return answer[::-1]

 

<풀이방법>

3진법으로 n을 3으로 나누는데 3으로 나눴을때 나머지가 1이면 1추가 2면 2를추가 0이면 4추가한다.

1 -> 1

2 -> 2

3 -> 4

 

4 -> 11

5 -> 12

6 -> 14

 

10 -> 41

11 -> 42

12 -> 44

 

나누어떨어지는 경우

ex) 3

  •  4를 추가하고 몫은 1인데 연산이 추가로 이루어지면 안되기 때문에 몫에서 1을 빼주어야한다.