본문 바로가기
Coding Test/Python

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

by giem 2022. 8. 29.
반응형

 

프로그래머스 124 나라의 숫자를 풀어보겠다.

이 문제의 레벨은 2로 되어있다.


문제

 


구현

 

이 문제는 자연수 n을 3으로 나눠 몫과 나머지를 다루면서 풀 수 있다.

divmod를 사용해 몫과 나머지를 구하고

나머지에 따라 결괏값을 다음과 같이 처리할 수 있다.

1. 나머지가 0일 때

 > 4를 answer에 더해주고 몫에서 1을 빼준다.

2. 나머지가 1,2일 때

 > 나머지 값을 answer에 더해준다.

 

이 몫을 계속 3으로 나누면서 0이 될 때까지 반복하면 된다.


코드

 

def solution(n):
    answer=''
    q=n
    while q>0:
        q, m = divmod(q,3)
        if(m==0):
            answer='4'+answer
            q-=1
        else:
            answer=str(m)+answer

    return answer

코드는 비교적 간단하다.

 

확실히 레벨 2에서는 코드 자체의 어려움보다

사고력이 많이 필요한 것 같다.


다른 풀이

 

재귀 함수를 사용한 다른 풀이를 보겠다.

def solution(n):
    if n<=3:
        return '124'[n-1]
    else:
        q, r = divmod(n-1, 3) 
        return solution(q) + '124'[r]

로직은 같지만 구현이 매우 깔끔하다

 

이런 코드를 짤 수 있도록

앞으로 더 분발해 보겠다.

반응형

댓글