def solution(n):
answer = 0
t_rev = []
#앞뒤 반전 3진법 만들기
while (n // 3) >= 3:
t_rev.append(n % 3)
n = n // 3
if (n // 3) < 3:
t_rev.append(n % 3)
t_rev.append(n // 3)
#3*(3*(3*1 + 2)+0)+0 이걸 활용해서...
#10진법 만들기
for i in t_rev:
a = 3 * 0 + t_rev[i]
aa = 3 * t_rev[i] + t_rev[i + 1]
bb = 3 * aa + t_rev[i + 2]
cc = 3 * bb + t_rev[i + 3]
...
#이걸 어떻게 함수로 만들지..?
return answer
: 사실 비효율적이고 길지만, 어찌어찌 10진법 -> 3진법 코드는 작성했다.
문제는 3진법 -> 10진법 코드..!
어떻게 반복문을 돌려야 할지 모르겠다ㅠㅠ
def solution(n):
answer = 0
th_rev = []
#앞뒤 반전 3진법 만들기
while True:
a = str(n % 3)
th_rev.append(a)
n = n // 3
if (n // 3) < 3:
b = n // 3
th_rev.append(b)
45/3=15...0
15/3=5...0
5/3=1...2
3*(3*(3*1 + 2)+0)+0
#10진법 만들기
ten = 3 * th_rev[-i] + th_rev[-(i + 1)]
3 * (3 * t_rev[-i] + t_rev[-(i+1)]) + t_rev[-(i+2)]
th_int = int(th_rev).split(',')
for i in range(1, len(th_int) + 1):
ten = 3 * th_rev[-i] + th_rev[-(i + 1)]
return answer