Python 3진법 뒤집기 - Programmers
Updated:
코딩테스트 연습 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