1. 문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/68935?language=python3

2. 제한 사항

3. 입출력 예

4. 풀이
def solution(n):
answer = 0
mul_num = 1
stack = []
while n != 0:
stack.append(n % 3)
n //= 3
while stack:
answer += stack.pop() * mul_num
mul_num *= 3
return answer
def solution(n):
answer = ''
while n != 0:
n, r = divmod(n, 3)
answer += str(r)
return int(answer, 3)
5. 후기
문제 자체는 짧고 그냥 하라는 대로만 하면 되는 어렵지 않은 문제이다.
이진법이나 삼진법이나 그냥 2, 3... 로 나눈 몫과 나머지를 가지고 구현하면 되는데 문제에서는 이를 뒤집으라 했으니 나는 스택을 사용했다. 그런데 찾아보니까 파이썬 기본 함수 중에 몫과 나머지를 튜플로 반환해 주는 함수가 있었다. divmod()를 사용하면 이를 한 번에 구할 수 있고, int() 함수에도 n진법을 10진법으로 변환하는 기능이 있기 때문에 이를 잘 활용하면 더 간단하게 작성할 수 있다.
'코딩테스트 (프로그래머스) > Python' 카테고리의 다른 글
| [프로그래머스][Python][Lv. 1] 중요한 단어를 스포 방지 (0) | 2026.06.07 |
|---|---|
| [프로그래머스][Python][Lv. 1] 노란불 신호등 (0) | 2026.05.26 |
| [프로그래머스][Python][Lv. 2] 올바른 괄호 (0) | 2026.05.10 |
| [프로그래머스][Python][Lv. 2] 방문 길이 (0) | 2026.05.03 |
| [프로그래머스][Python][Lv. 1] 실패율 (0) | 2026.04.11 |