본문 바로가기

알고리즘/Python 기초

파이썬 - 3진법 뒤집기(lv.1)

문제 ) 프로그래머스 - 3진법 뒤집기(lv.1)

📌 문제 설명

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

 

📌 제한 사항

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

📌 입출력 예

n result
45 7
125 229

 

📌 입출력 예 #1

n(10진법) n(3진법) 앞뒤 반전(3진법) 10진법으로 표현
45 1200 0021 7

divmod()

n값이 1이 될때까지 나눠주기

n : 몫

re : 나머지 -> 나머지 값을 처음부터 문자열로 추가해주면 앞뒤 반전된 3진법의 형태로 나온다

10진법으로 변경 -> int(바뀐 수, 진법)

def solution(n):

    answer = ''
    while n > 0:
        n, re = divmod(n, 3)
        answer += str(re)
    return int(answer, 3)