[Level1/Python3] 3진법 뒤집기

코딩테스트/프로그래머스

[Level1/Python3] 3진법 뒤집기

휴전 2022. 7. 29. 23:56

본 글은 프로그래머스 문제를 기반으로 작성한 글입니다. (https://school.programmers.co.kr/learn/courses/30/lessons/68935)

 

문제 설명

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

 

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

내 생각

흐름

1) 3진법 만들기

  • 몫이 0이 될 때까지 3으로 계속 나누고 나머지를 반대로 이으면 됨
  • 이을 때 배열 쓰자

2) 뒤집기

3) 10진법 만들기 

 

작성한 코드

def solution(n):
    answer = 0
    N = []
    while n:
        N.append(n % 3)
        n = n // 3
    N.reverse()
    for i, x in enumerate(N):
        answer += x * (3 ** i)
    return answer