최대 1 분 소요

https://school.programmers.co.kr/learn/courses/30/lessons/12899 .

10진법 124 10진법 124
1 1 9 24
2 2 10 41
3 4 11 42
4 11 12 44
5 12 13 111
6 14 14 112
7 21 15 114
8 22 16 121

10진법의 숫자를 (편의상 124진법이라고 하자.) 124진법으로 바꿀 때, 첫째 자리 숫자는 1, 2, 4가 반복되며, 둘째 자리 숫자는 3개 주기로 1, 2, 4가 반복, 다음 자리 숫자로 올라갈 수록 주기가 3배씩 증가한다.

내 풀이

def solution(n) :
    answer = ""
    num = ['1', '2', '4']
    
    while n > 0 :
        n -= 1
        answer = num[n % 3] + answer
        answer //= 3
        
	return answer

n = 20을 예로 들면, 124진법으로 바꾸면 142이다.

첫째 자리 : n = 20 - 1 = 19, num[19 % 3] = 2

n //= 3 => n = 6

둘째 자리 : n = 6 - 1 = 5, num[5 % 3] = 4

n //= 3 => n = 1

셋째 자리 : n - 1 = 0, num[0] = 1

answer = “142”

댓글남기기