<로직 고민/>
- 일단...3진법을 어떻게 구하는지..........알아보았다
- https://coding-factory.tistory.com/652
- 이진법 구하는 거랑 똑같군...! 진법 변환하는 건 다 똑같구나.....
- 저번에 최대공약수, 최소공배수 문제를 풀면서 찾아보다가 divmod 함수를 알게 되었는데 그걸 여기서 써야 할 것 같다
- n을 3으로 나눠서 몫과 나머지를 구하는데, 그렇게 나온 몫을 n에 넣어주고 나머지를 변수를 하나 선언해서 거기에 더해준다
- 근데 진짜로 더하면 안 되고 str으로 바꿔서 하나씩 붙여준다
- n이 0이 될 때까지 반복한다
- 답이 도출되는 과정에는 n의 3진수를 앞뒤 반전을 해야 하지만 이런 식으로 구했을 때 n의 3진수가 들어갈 변수에는 나머지가 읽어야 하는 방향과 반대로 쌓이기 때문에 바로 n의 3진수가 들어가 있는 변수를 10진법으로 변환하면 된다
- 3진수을 10진수로 변환하는 방법은 여기에서 찾았다
<완성된 풀이/>
def solution(n):
answer = ""
while n > 0:
n, mod = divmod(n, 3)
answer += str(mod)
return int(answer, 3)