출처 : 코딩테스트 연습 - 3진법 뒤집기 | 프로그래머스 (programmers.co.kr)
풀이 방법
십진법으로 표현된 수를 3진법으로 바꾸는 방법은 십진법 수를 3으로 몫이 0이 될 때까지 나눠가며 나머지를 큐에 넣은 후 하나씩 빼면 3진법으로 바꿀 수 있다.
문제에서 삼진법으로 만든 후 뒤집은 후 다시 십진법으로 만들어야 하므로 큐가 아닌 처음부터 스택에 나머지를
넣은 후 pop 을 해준후 다시 십진법으로 만들면 정답이 된다
def solution(n):
answer = 0
stack = []
while not (n / 3 == 0):
stack.append(n % 3)
n = n // 3
cnt = 1
while len(stack):
answer += cnt * stack.pop()
cnt *= 3
return answer
문법
파이썬에서는 c++과 다르게 stack의 pop함수를 이용하면 원소를 리턴함을 하고 제거까지 해준다
'Algorithm' 카테고리의 다른 글
[algospot] 변화하는 중간 값 (c++) (0) | 2021.02.15 |
---|---|
[프로그래머스] 키패드 누르기 (Python) (0) | 2021.02.15 |
[algospot] 너드인가, 너드가 아닌가? (c++) (0) | 2021.02.14 |
[프로그래머스] 모의고사 (Python) (0) | 2021.02.11 |
[프로그래머스] 체육복 (c++) (0) | 2021.02.10 |