[Programmers] 124 나라의 숫자
[Programmers] 124 나라의 숫자
Question
Language: Python
숫자를 1,2,4로 표현하는 방법에 대한 문제이다.
해당 문제는 3진법을 고려해서 풀면 간단하게 해결할 수 있다.
num | 3진법 | 124 |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 10 | 4 |
4 | 11 | 11 |
5 | 12 | 12 |
6 | 20 | 14 |
7 | 21 | 21 |
8 | 22 | 22 |
9 | 100 | 24 |
10 | 101 | 41 |
11 | 102 | 42 |
12 | 110 | 44 |
13 | 111 | 111 |
3진법은 124와 달리 각 0을 앞에서 쓸 수 없기 때문에 124에 비해 각자리에서 사용할 수 있는 숫자가 1개씩 모자란다. 그렇게 되므로
3진법은 3에서 자리 수가 변하고, 124 에서는 4에서 자리수가 변하고,
9에서 자리수가 변하고, 13에서 자리수가 변하게 된다.
아래와 같이 각 자리수 마다 한 자리수 씩 부족하므로, n-1을 처리해준다.
3진법은
한 자리수 2개 두 자리수 2*3개
124는
한자리 수 3개 두자리 수 3*3개
Solution
def solution(n):
answer = ''
num = ['1','2','4']
answer = ""
while n > 0:
n -= 1
answer = num[n % 3] + answer
n //= 3
return answer
댓글남기기