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

박성완·2022년 3월 7일
0

프로그래머스

목록 보기
16/43
post-thumbnail

Question

문제링크

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

제한사항

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

Input & Output

nresult
457
125229

Logic

  1. 숫자를 3진법으로 만들어 리스트로 만든다.
    • 이 때 3진법으로 만드는 방식은 10진법을 2진법으로 만드는 방법과 동일하다.
  2. 이를 뒤집는다.
  3. 다시 10진법으로 만든다.

Code

import math
def solution(n):
    no3=[]
    while(n>0):
        no3.append(n%3)
        n//=3
    no3.reverse()
    return sum([math.pow(3,i)*no3[i] for i in range(len(no3))])

0개의 댓글