코테공부
프로그래머스 69일차 - 3진법 뒤집기
알면 알 수록 재밌다!
2023. 5. 8. 22:26
import string
tmp = string.digits+string.ascii_lowercase
def convert(num, base) :
q, r = divmod(num, base)
if q == 0 :
return tmp[r]
else :
return convert(q, base) + tmp[r]
def solution(n):
num = convert(n, 3)
reversed_num = num[::-1]
result = int(reversed_num, 3)
return result
3 -> 10진법은 모듈이 있어서 변환이 쉽지만
10 -> 3진법은 모듈이 없다.
그래서 해당 수를 n 진법으로 나눈 값을 이용해서 변환 시켜야한다.
그 함수가 convert 함수이다.
재귀 함수를 사용해서 계속 변환하도록 한다.
그렇게 구한 3진법 수는 문자열 형태로 있어야 10진법으로 변환할 수 있다.
int(문자열, n진법)으로 10진법으로 바꾼다.
그 값을 리턴한다.