Posts 3진법 뒤집기 [Python]
Post
Cancel

3진법 뒤집기 [Python]

URL : https://programmers.co.kr/learn/courses/30/lessons/68935

문제 설명

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

제한사항

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

문제 풀이

  • python은 2,8,16으로 변환하는 함수는 있으나 (format) 나머지는 없어서 따로 구현을 해야했다.
  • divmod는 몫과 나머지를 반환해주는 함수여서 while의 반복문을 사용하여 n이 0이 될때까지 하는 방법으로 실행하며 answer에 저장하면 알아서 뒤집혀서 저장됨
  • 이후 int를 사용하여 3진법을 10진법으로 변환시켜 주면 끝
1
2
3
4
5
6
7
def solution(n):
    answer = ''
    while n > 0:
        q, r = divmod(n, 3)
        answer += str(r)
        n = q
    return int(answer, base = 3)
1
2
n = 45
solution(n)
1
7
1
2
n = 125
solution(n)
1
229
This post is licensed under CC BY 4.0 by the author.