알고리즘/문제풀이
[Python] Programmers 124 나라의 숫자
정찡이
2021. 8. 20. 22:37
728x90
1. 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12899
코딩테스트 연습 - 124 나라의 숫자
programmers.co.kr
2. 문제 요약
- 기존 3진법 012와 다르게 124 나라에서는 124만 사용 가능하다.
- 10진법을 124 나라 숫자로 변환한다.

3. 아이디어 정리
- 124 나라 규칙을 찾아서 구현을 아래와 같이하였다.
- 3으로 나누어 떨어지지 않는 경우
- 나머지를 리스트에 넣는다.
- 3으로 나눈 몫을 n에 넣는다.
- 3으로 나누어 떨어지는 경우
- 4를 넣는다.
- 3으로 나눈 몫을 n에 넣는다.
- 몫은 1 제거해준다.
4. 문제 풀이
4-1. 내 풀이
def solution(n):
result = list()
while n:
if n % 3 != 0:
result.append(n % 3) # 나머지 넣기
n //= 3
else:
result.append(4) # 일반적인 3 진법과 다름 - 나머지 0인 경우 4 넣어주기
n //= 3
n -= 1 # 몫하나 제거
return ''.join(map(str, result[::-1]))
5. 결론
- 3진법 변환과 동일해 보이지만 규칙이 달라서 다른 부분만 수정하면 된다.
반응형