https://school.programmers.co.kr/learn/courses/30/lessons/68935#
1) 우선, 10진법인 n을 계속 나누었을 때의 나머지로 문제를 풀 수 있을 거라 생각함.
2) 근데 n은 1 이상 100,000,000 이하인 자연수로, 3으로 계속해서 나누어가는 풀이로는 최악의 경우의 수에서 시간초과가 나지않을까 생각
-> 반복문 외의 풀이 궁금했으나 잘 떠오르지 않음
def solution(n):
answer = 0
s=''
k=0
while True:
s+=str(n%3)
n//=3
if 0<n<3:
s+=str(n)
break
if n<1:
break
s=list(map(int, s))
while s:
answer+=s.pop()*(3**k)
k+=1
print(s, k, answer)
return answer
1
def solution(n):
answer = ''
while(n >= 1):
rest = n % 3
n = n // 3
answer += str(rest)
return int(answer, 3)
print(solution(45))
2
def solution(n):
answer = ''
while n > 0:
n, re = divmod(n,3) # n을 3으로 나눈 몫과 나머지
answer += str(re)
return int(answer, 3)