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