https://programmers.co.kr/learn/courses/30/lessons/68935
def solution(n):
ternary = getTernary(n)
decimal = getDecimal(ternary)
return decimal
def getTernary(n):
answer = ''
while True:
answer += str(n % 3)
if n // 3 == 0:
break
n //= 3
return answer[::-1]
def getDecimal(n):
answer = 0
for index, num in enumerate(n):
answer += int(num) * (3**index)
return answer
3진법으로 변환하는 함수, 3진법을 다시 10진법으로 변환하는 함수를 각각 작성했다.
3진수를 구하는 함수에서 반복문을 다 돌고 나면 0021 처럼 뒤집힌 3진수가 나오는데,
10진수로 변환하는 과정에서 각 자릿수를 제곱수로 활용하면 쉽게 계산할 수 있기 때문에 뒤집힌 그대로 리턴하지 않고 1200처럼 실제 3진수가 나오도록 작성했다.