작은하마

[프로그래머스] lv.1 124 나라의 숫자 본문

코딩테스트

[프로그래머스] lv.1 124 나라의 숫자

꼬몽울 2021. 7. 8. 18:00

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

 

코딩테스트 연습 - 124 나라의 숫자

 

programmers.co.kr

124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.

  1. 124 나라에는 자연수만 존재합니다.
  2. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.

예를 들어서 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=15
list=[]
while True:
    a,b=divmod(n,3)
    if b==0:
        b=4
        a-=1
    n=a
    list.append(str(b))

    if a==0:
        break
print(list)
list.reverse()
print(''.join(list))

 

1,2 는 3으로 나누었을때 나머지가 1,2로 나오기떄문에 나눈 수의 나머지를 넣어준다

만약 3으로 나누어 떨어지면 나머지가 0이기떄문에 4를 더해주고 몫에는 -1을 해준다

-1을 해주는이유는 다른 2진 3진법은 0,1 0,1,2로 순서대로 구성되어있지만 124나라의 진법은

1,2,4,로 되어있다 이떄 0이 없기떄문에 이를 맞추어주기 위해 -1을 한다.

이거 찾느라고 좀 걸림...

 

Comments