자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
| n | result |
|---|---|
| 45 | 7 |
| 125 | 229 |
입출력 예 #1
| n (10진법) | n (3진법) | 앞뒤 반전(3진법) | 10진법으로 표현 |
|---|---|---|---|
| 45 | 1200 | 0021 | 7 |
따라서 7을 return 해야 합니다.
입출력 예 #2
| n (10진법) | n (3진법) | 앞뒤 반전(3진법) | 10진법으로 표현 |
|---|---|---|---|
| 125 | 11122 | 22111 | 229 |
따라서 229를 return 해야 합니다.
def solution(n): answer = '' while n > 0: n, m = divmode(n, 3) # n을 3으로 나눈 몫과 나머지 answer += str(m) return int(answer, 3)
- 사용된 함수
divmod() : 두 개의 수를 대상으로 // 연산자와 % 연산자를 각각 호출하는 것int(x, base) : base 진법으로 구성된 str 형식의 수를 10진법으로 변환해 줌
while n > 0: n, m = divmode(n, 3) answer += str(m)
- divmode() 함수를 사용해 변수 n과 m에 n을 3으로 나눈 몫과 나머지를 넣어준다.
- 변수 answer에 divmod()한 나머지 값을 차례로 넣어준다.
-> ex) n = 45 -> answer = '0021'
return int(answer, 3)
- int(x, base) 함수를 사용해 3진수인 answer를 10진수로 변환해 반환해준다.