
1200인데, 우리는 뒤집은 3진법이 필요하다.result 리스트에 담아준다.sum에 3진법을 계산한 답들을 더해주었다.def solution(n):
answer = 0
result = []
sum = 0
while n:
a, b = divmod(n, 3)
result.append(b)
n = n//3
for i in range(len(result)):
# 0, 1, 2, 3
sum += ((3**(len(result)-i-1))*result[i])
answer = sum
return answer
생각해보니 divmod를 사용할 필요 없이 걍 n%3을 저장해 주면 되는구나..;;
def solution(n):
tmp = ''
while n:
tmp += str(n % 3)
n = n // 3
answer = int(tmp, 3)
return answer
int가 쓰였길래 뭐지? 하고 찾아보니
int('숫자(혹은 16진법의 문자와 같은 문자)로 이루어진 문자열',해당 진법)이라고 한다.
바로 10진법 수로 계산해주는 것..;; 세상에 이런 용도가 있는지 처음 알았다;
해당 코드에서 int(tmp, 3)는 tmp문자열을 3진법으로 변환해 준다는 것이다.
나처럼 sum += ((3**(len(result)-i-1))*result[i]) 이렇게 3진법을 직접 계산해줄 필요가 없음..