티스토리 뷰

728x90

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

 

코딩테스트 연습 - 3진법 뒤집기

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

programmers.co.kr

 

  • 해설 :

자연수 n이 주어질 때, 이 수를 3진수로 변환하여 앞뒤로 뒤집고 다시 10진수로 변환해서 출력하면 된다.

 

 

 

 

  • 풀이 :

n진법으로 변환하는 change 함수를 구현하고 10진수 n을 3진수로 변환하였다. 원래 3진수로 변환할 때 나눈 몫과 나머지에서 reverse를 해주어야 하지만 어짜피 앞 뒤로 뒤집어야 하기 때문에 그냥 return하였다. 이후 int 함수로 3진수를 10진수로 다시 변환시켜 return 해주었다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
def change(n, q):
    rev_base = ''
 
    while n > 0:
        n, mod = divmod(n, q)
        rev_base += str(mod)
 
    return rev_base
 
def solution(n):
    return int(change(n,3),3)
cs
320x100
댓글
© 2022 WonSeok, All rights reserved