자연수를 3진법으로 바꾼 후, 그 상태에서 reverse 한다. 그 다음 그것을 다시 10진법으로 바꾸는 문제.
나의 풀이는 다음과 같다.
def solution(n):
shipal = []
k = 0
while n>0:
shipal.insert(0,n%3)
n = n//3
return sum([int(el)*3**idx for idx,el in enumerate(list(shipal))])
아래는 다른 사람의 풀이에서 int(x, base) 함수가 base에 해당하는 진법으로 x를 인식하여 10진법 정수로 바꿔주는 기능이 있다는 것을 알고나서 코드를 간단하게 만든 것이다.
def solution(n):
shipal = ''
while n>0:
shipal += str(n%3)
n = n//3
return int(shipal,3)