본문 바로가기

카테고리 없음

N진법

십진법 0~9로 구성

이진법 0~1로 구성

삼진법 0~2로 구성 -> 1221 = 1*27 + 2*9 + 2*3 + 1*0 = 52

 

문제)

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

 

내가 짠 코드)

def solution(n):
    a = ''
    while n != 0:
        s = n % 3
        n = n//3
        a = str(s) + a
    
    answer = 0
    
    for x, y in zip(range(len(a)),a):
        answer += (3**x)*int(y)
    
    return answer

 

int 함수

 

int(문자열, n) -> 문자열을 n진법의 수로 변환 

int('1001',3)
# 28
int('1221',3)
# 52