[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
Author And Source
이 문제에 관하여([Py_Lv1] 3진법 뒤집기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ysh/PyLv1-3진법-뒤집기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)