124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.
10진법 124 나라 10진법 124 나라
1 1 6 14
2 2 7 21
3 4 8 22
4 11 9 24
5 12 10 41
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.
n result
1 1
2 2
3 4
4 11
규칙을 찾아보려고 노력을 많이 하였다. 그러다가 숫자를 3개만 사용한다는 점에서 3진법으로 나타내면 되겠다는 생각을 했다. 그러나 3진법을 이용하면 0,1,2로 수를 나타내게 된다. 0이 나오는 경우는 3으로 나눈 나머지가 0일 때이고, 0을 사용하지 않고 표현하려면 몫을 1 내리고, 나머지를 4로 바꾸어 표현하면 된다는 결론이 나왔다.
def solution(n):
answer = ''
result = []
while n:
t = n%3
if t == 0:
t=4
n-=1
result.append(str(t))
n//=3
result=result[::-1]
answer = ''.join(result[::1])
return answer