[Py_Lv1] 3진법 뒤집기

문제 설명

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

제한 사항

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

입출력 예

접근법

입출력 예시에는 4가지 단계를 보여주는 그림이 있지만,
머리속으로 문제를 그려보니 append() 함수를 이용하면
자연스럽게 자료구조의 스택의 구조처럼 후입선출를 구현할 수 있을것 같았다.

그래서 아래와 같은 코드를 구현하였다.

조금 헷갈렸던 부분은 index를 계산하기 위한 값의 설정이었다.

코드가 지저분해 보인다. 복습할때 좀 더 깔끔하게 구현할 수 있는 방법을
생각해봐야겠다.

=============================================================

def solution(n):
    num = []
    answer = 0
    
    while n >= 1:
        num.append(n % 3)
        n = n // 3
        
    for i in range(len(num), 0, -1):
        answer += num[i-1] * 3**((len(num)) - i)
        
    return answer

좋은 웹페이지 즐겨찾기