반응형

3진법 뒤집기

-풀이

def solution(n):
    answer = 0
    rev_base = ''

    while n > 0:
        n, mod = divmod(n, 3)
        rev_base += str(mod)

    a = rev_base[::-1] 
    a = list(a)
    a.reverse()
    a = ''.join(a)
    a= int(a, 3)
    return a
# def solution(n):
#     tmp = ''
#     while n:
#         tmp += str(n % 3)
#         n = n // 3

#     answer = int(tmp, 3)
#     return answer

-풀이 설명

3진법을 어떤식으로 나타내야 할 줄 몰라서 구글링을 해서 n의 3진법을 구했다. 그런 다음 조건에 맞춰서 10진법으로 다시 표현을 했다. 10진법으로 다시 바꾸는 방법 중에 int()함수를 이용해서 바꿀 수 있다는 것을 알게 되었다. 풀고 난 뒤 다른 사람의 풀이를 보고 3진법을 훨씬 더 간단하게 구하는 방법을 알게 되어 주석처리로 나타내었다.

+ Recent posts