# 내 코드
def solution(n):
answer = ''
decimal = 0
while n > 0:
answer += str(n % 3)
n //= 3
answer = answer[::-1]
for i in range(len(answer)):
decimal += int(answer[i]) * (3 ** i)
return decimal
# 남 코드
def solution(n):
tmp = ''
while n:
tmp += str(n % 3)
n = n // 3
answer = int(tmp, 3)
return answer
첫 번째로는 answer의 순서에 대해 헷갈렸었다. 분명 진법으로 변환하는 과정에서 실제 순서와 반대로 answer에 문자열로 삽입되기 때문에 어짜피 결과가 거꾸로 나와 answer[::-1]를 할 필요가 없지 않나 싶었다. 하지만 생각해보니 뒤에 for문으로 10진법으로 해석하는 부분에서 i의 사용법 때문에 맨 앞자리에 첫째자리가 오는 것이 편하기에 answer[::-1]가 필요했다.
그리고 int에 두번째 인수를 받아 진법이 해석 가능한 줄은 몰랐다. 이 발견 덕분에 위의 고민이 아주 무색해졌다.