n | result |
---|---|
45 | 7 |
125 | 229 |
n(10진법) | n(3진법) | 앞뒤 반전(3진법) | 10진법으로 표현 |
---|---|---|---|
45 | 1200 | 0021 | 7 |
125 | 11122 | 22111 | 229 |
def solution(n):
answer = []
sum = 0
# 3진법으로 변환
while True:
if n < 3:
answer.append(n)
break
rem = n % 3
n = n // 3
answer.append(rem)
# answer 리스트 길이
length = len(answer)
# 입력받은 수가 3미만일 때
if length == 1:
return answer[0]
for i in range(length):
if answer[i] == 0:
continue
# 10진수로 변환
sum = sum + answer[i] * (3 ** (length - 1 - i))
return sum