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

bye9·2021년 3월 10일
0

알고리즘(코테)

목록 보기
90/130

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


문제풀이

주어진 숫자를 3으로 나눈 나머지가 1,2,0에 따라 맨 끝자리가 1,2,4를 가지게 된다.

n=4,5,6의 경우 각각 몫은 1,1,2를 가진다.

기본 로직은 3으로 나누어가면서 나머지에 해당하는 값을 앞에 추가해준다.
예를 들어 n=14라면 n,r=4,2가 되고,
answer의 맨 앞에 2를 추가해준다.
그리고 다시 n=4인 경우... 를 반복한다.

이때 나머지가 0인 경우 몫은 -1을 해준다.

1=3*0+1 -> 1
2=3*0+2 -> 2
3=3*1+0 -> 4

소스코드

def solution(n):
    answer=""
    while n:
        n,r=divmod(n,3)
        answer="412"[r]+answer
        if r==0:
            n-=1
    
    return (answer)

0개의 댓글