Algorithm/📊 Problem Solving

[프로그래머스/Programmers] 3진법 뒤집기

posted by sangmin

3진법 뒤집기

📌 문제

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

⚠️ 제한사항

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

📋 코드

def solution(n):
    change = []

    while n >= 3:
        rest = n % 3
        change.append(str(rest))
        n //= 3
    change.append(str(n))

    result = 0
    for i in range(len(change)):
        sup = len(change) - i - 1
        result += int(change[i]) * 3 ** sup

    return result     

💡 한마디

앞뒤로 뒤집어주는 과정을 굳이 거치지 않고 리스트를 거꾸로 탐색했다.

 

코딩테스트 연습 - 3진법 뒤집기

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

programmers.co.kr