유형 : 구현

풀이 시간 : 10분

 

def solution(n):
    n = tri(n)
    n = list(n)
    n.reverse()
    n = ''.join(n)
    n = int(n, 3)
    return n

def tri(n):
    ans = []
    curr = 3
    while True:
        if n < curr:
            ans.append(str(n))
            break
        ans.append(str(n%curr))
        n = n // curr
    ans.reverse()
    return ''.join(ans)

 

* n진법 -> 10진법 : int (숫자, n)

* 10 -> 16, 8, 2 : 내장함수

hex, oct, bin

* 그 외는 내장함수가 없으니까 알아서 함수 써라 

 

 

3진법 함수쓰는데 시간 다씀. 

내장함수가 없다니 파이썬 내 믿음을 저버렸다... 

 

<다른 사람의 풀이>

def solution(n):
    tmp = ''
    while n:
        tmp += str(n % 3)
        n = n // 3

    answer = int(tmp, 3)
    return answer

 

1. 함수 굳이 따로 안 빼도 됨. 

2. 종료조건 설정하지 말고 그냥 while 조건문으로 n 적으면 됨. 

복사했습니다!