반응형
문제설명
https://programmers.co.kr/learn/courses/30/lessons/68935
사고과정
- 10진수를 n진수로 만드는 방법은 재귀함수로 활용해서 쉽게 구현했다.
- 그런데 n진수로 만든다음 뒤집은 후 다시 이를 10진수로 변환하라고 해서, '뒤집는 것까지' 10진수에서 n진수로 만들 때 적용했다. 그런데 이렇게 하면 10진수로 변환하는 로직을 적용하면, 변환 이전의 10진수값으로 다시 돌아오게 된다. 그래서 10진수 -> n진수로 만들 때 뒤집는 과정까지는 하지 말고 그냥 변환한 후, 이를 10진수로 변환하는 로직을 적용하면 변환하는 과정에서 자동으로 뒤집어져 계산된다. n진수를 10진수로 변환하는 로직을 외워두자.
풀이
result = ''
def solution(n):
def dfs(x):
global result
if x == 0:
return
else:
dfs(x // 3)
result += str(x % 3)
dfs(n)
answer = 0
for i, val in enumerate(result):
answer += (3 ** i) * int(val)
return answer
반응형
'알고리즘 삽질장' 카테고리의 다른 글
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2021.12.08 |
---|---|
[프로그래머스] 예산 (0) | 2021.12.08 |
[프로그래머스] 약수의 개수와 덧셈 (0) | 2021.12.07 |
[프로그래머스] 폰켓몬 (0) | 2021.12.07 |
[프로그래머스] 체육복 (0) | 2021.12.07 |