Python 3진법 뒤집기 - Programmers

Updated:

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


3진법 뒤집기

문제 설명

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

제한 사항

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

입출력 예

n = 45
result = 229

입출력 예 설명

답을 도출하는 과정은 다음과 같습니다.

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

코드

import math

def solution(n):
    answer = 0
    rev = []
    while(n > 0):
        rev.append(n%3)
        n = n // 3

    j = len(rev) - 1
    for i in rev:
        answer += i * math.pow(3, j)
        j = j - 1

    return int(answer)

고찰

진법 변환 방식이 처음에 기억이 나지 않아 시간을 낭비하였다. 코드를 분석하기 쉬운 코드와 line 수가 적은 코드의 비율을 잘 정해야 할 것 같다.

Leave a comment