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
10진수를 n진수로 바꾸는 코드만 알고 있다면 금방 풀 수 있는 문제이다.
10진수를 n진수로 바꾸는 코드
inv_three_str = ''
while n >= 1 :
n,b = divmod(n,3)
inv_three_str += str(b)
three_str = inv_three_str[::-1]
while문을 통해서 역순으로 진수가 나오기 때문에 [::-1]을 통해 원래 변환하고자 했던 제대로 된 진수가 나오게 된다.
n진수를 10진수로 바꾸기 위해서는 int() 함수를 사용하면 된다.
#3진수를 10진수로 변환
ten_str = int(three_str, 3)
3이 들어간 자리에 n진수에 해당하는 n을 넣으면 된다.
이 두가지 코드를 사용해서 해당 문제를 풀 수 있으며 정답 코드는 아래와 같다.
def solution(n):
answer = 0
three_str = ''
while n >= 1 :
n,b = divmod(n,3)
three_str += str(b)
answer = int(three_str, 3)
return answer
해당 문제에서는 3진수를 한번 뒤집어서 그 수를 10진수로 바꾸라고 했기 때문에 while문을 통해 나온 뒤집어진 3진수를 원래 순서대로 바꾸지 않고 바로 10진수로 변환했다.
GitHub - YOOHYOJEONG/algorithm_practice: 알고리즘 공부 및 코딩테스트 준비
알고리즘 공부 및 코딩테스트 준비. Contribute to YOOHYOJEONG/algorithm_practice development by creating an account on GitHub.
github.com
728x90