Syeonny의 블로그

프로그래머스 lv.1 3진법 뒤집기 본문

코딩테스트

프로그래머스 lv.1 3진법 뒤집기

syeonny 2025. 2. 17. 20:00

프로그래머스 lv.1 3진법 뒤집기

 

문제 설명 

 

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

 

제한사항 

 

n은 1 이상 100,000,000 이하인 자연수입니다. 

 

내 코드  

 

def solution(n):
    answer = 0
    total = ''
    while n>=3:
        total += ''.join(str(n%3))
        n = n//3 
    total += str(n)
    print(total)
    for i, idx in enumerate(reversed(total)):
        answer += int(idx)*(3**i)
    return answer

 

 

수정 

 

# 내장함수 사용 
def solution(n):
    ternary = ""
    while n:
        ternary += str(n % 3)
        n //= 3

    # 10진법 변환
    return int(ternary, 3)

 

def solution(n):
    ternary = []
    while n > 0:
        ternary.append(n % 3)  
        n //= 3  
    answer = 0
    for i, digit in enumerate(ternary):  
        answer += digit * (3 ** i) 
    return answer