https://school.programmers.co.kr/learn/courses/30/lessons/68935
월간 코드 챌린지 시즌1
def solution(n):
three = ''
while n > 0:
three += str(n % 3)
n = int(n / 3)
return sum([int(three[-(i+1)]) * 3**i for i in range(len(three))])
while문은 10진법 -> 3진법 변환 (자동으로 뒤집힘)
return은 3진법 -> 10진법 변환함
10진법을 3진법으로 변환할 때는 3으로 나눴을 때 나머지를 쭉 붙히면 됨
3진법을 10진법으로 변환할 때는 각 번째 자리에 대해서 한 것을 모두 더함
예시
def solution(n):
tmp = ''
while n:
tmp += str(n % 3)
n = n // 3
answer = int(tmp, 3)
return answer
기가 막히게 풀었다고 생각했는데 이런 코드도 있었음..
int('n진수', n) -> 10진수 숫자로 변환함
int에 이런 기능이 있는 줄 몰랐음
예시
int('0021', 3)
7