반응형
프로그래머스 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]
로직은 같지만 구현이 매우 깔끔하다
이런 코드를 짤 수 있도록
앞으로 더 분발해 보겠다.
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 타겟 넘버 Python Code (0) | 2022.08.30 |
---|---|
[프로그래머스] 올바른 괄호 Python Code (0) | 2022.08.30 |
[프로그래머스] 멀쩡한 사각형 Python Code (0) | 2022.08.29 |
[프로그래머스] 문자열 내 마음대로 정렬하기 Python Code (0) | 2022.08.28 |
[프로그래머스] 소수 찾기 Python Code (0) | 2022.08.28 |
댓글