1. 요약
- 주어진 숫자를 3진법으로 표현한다.
- 3진법으로 표현 된 수를 앞 뒤로 뒤집고, 10진법으로 변환하여 답을 구해야한다.
2. 아이디어
- n를 3진법으로 변환 할 때.
num = ''
n
을 3으로 나눈 나머지를 str
타입으로 변환 후, num
값 앞에 이어 붙인 후 num
에 저장한다.
n
을 3으로 나눈 몫을 n
에 저장한다.
n
이 0이 될 때 까지, 2., 3.을 실행한다.
- 10진법으로 변환 할 때는, 3진법으로 얻은 수를 뒤집지 말고, 반복문을 잘 이용해서 구하면된다.
ternary_num = '1200'
ternary_num = list(map(int, list(ternary_num)))
answer = 0
for i in range(len(ternary_num)):
answer += ternary_num[i] * 3 ** i
3. 코드
def get_ternary(n):
num = ''
while n > 0:
num = str(n % 3) + num
n = n // 3
return list(map(int, list(num)))
def get_decimal(n):
size = len(n)
num = 0
for i in range(size):
num += n[i] * 3 ** i
return num
def solution(n):
num = get_ternary(n)
num = get_decimal(num)
return num