728x90
https://programmers.co.kr/learn/courses/30/lessons/68935
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진수로 변환했다.
728x90