n을 3진법으로 만들고 n을 몫이 0이상일 때까지 3으로 나누어 나머지와 마지막 몫 저장
다시 10진법으로 변환하여 출력
def solution(n):
num = ''
answer = 0
while n > 0:
n, mod = divmod(n, 3)
num += str(mod)
for idx, i in enumerate(num):
answer += int(i) * (3 ** (len(num) - (idx + 1)))
return answer
TypeError: unsupported operand type(s) for +=: 'int' and 'str'
문자열에 숫자를 더해서 나오는 오류 ('int' and 'str')
answer += int(i) * (3 ** (len(num) - (idx + 1)))
i 를 int(i) 로 바꾸어 해결했다.
def solution(n):
tmp = ''
while n:
tmp += str(n % 3)
n = n // 3
answer = int(tmp, 3)
return answer