코테공부

프로그래머스 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진법으로 바꾼다.

그 값을 리턴한다.