[프로그래머스] 1단계_3진법 뒤집기 (python) (작성중)

juyeon·2022년 6월 15일
0

코딩테스트(python)

목록 보기
12/22

프로그래머스

1단계_3진법 뒤집기

나의 풀이

  1. 고민 중..
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진법 코드..!
어떻게 반복문을 돌려야 할지 모르겠다ㅠㅠ

  1. 또 고민중...
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
profile
내 인생의 주연

0개의 댓글