[Py_Lv1] 3진법 뒤집기

Sunghun📈·2021년 10월 20일
0

프로그래머스

목록 보기
77/93
post-thumbnail

문제 설명

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

제한사항

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

입출력 예시

입출력 예 설명
입출력 예 #1

  • 답을 도출하는 과정은 다음과 같습니다.
  • 따라서 7을 return 해야 합니다.

입출력 예 #2

  • 답을 도출하는 과정은 다음과 같습니다.

  • 따라서 229를 return 해야 합니다.

접근법

divmod를 활용해 몫과 나머지를 구하면 더 쉽게 해결할 수 있다.

while 문의 조건 설정에서 약간의 실수가 있어
채점시에 문제가 있었지만 잘 해결할 수 있었다.

나머지는 10진수로 변환하는 과정을 단순히 코드로 구현하면 되기 때문에
자세한 설명은 생략한다.

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

def solution(n):
    answer = 0
    num_list = []
    
    while True :
        n, rest = divmod(n, 3)
        num_list.append(rest)
            
        if n==0:
            break
    
    for i in range(len(num_list)):
        answer += num_list[i] * (3**(len(num_list)-i-1))
    return answer
profile
데이터 분석과 AI 분야의 전문가를 꿈꾸는 청년

0개의 댓글