[PYTHON-프로그래머스][Level2]-124나라의 숫자

HAHAHA·2021년 5월 7일
0

문제 설명

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

124 나라에는 자연수만 존재합니다.
124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.

자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.

<제한사항>
n은 500,000,000이하의 자연수 입니다.

내가 생각한 코드

하나의 배열을 만들어 줍니다.
n_array=["1","2","4"] 를 만들어서 계속 뺑뺑이 돌려줍니다.

숫자 n에서 n%3을 했을 때, 0,1,2가 나오게 됩니다.

<출력물>
0이 나오면 1
1이 나오면 2
3이 나오면 4

이렇게 출력이 되도록 합니다.
n-1을 하고, n%3을 해서 배열결과물을 출력합니다.

n=1이면, n-1(1-1=0)을 해서 n%3(0%3=0)을 해서 1 출력
n=2이면, n-1(2-1=1)을 해서 n%3(1%3=1)을 해서 2 출력
n=3이면, n-1(3-1=2)을 해서 n%3(2%3=2)을 해서 4 출력
n=4이면, n-1(4-1=3)을 해서 n%3(3%3=0)을 해서 1 출력
근데, 여기서 n=4는 11로 나와야 하잖아요!

흠...
3인 경우에는 n//3을 해서 1로 만들어주고 다시 n-1해서 0으로 되게끔 하면 되겠네요!
그 부분을 출력물과 더해주면 11이 되네요!

즉, 0//3, 1//3, 2//3은 다 0이 되서 돌아가지 않지만,
3//3부터는 1이 되니깐 두자리를 채워줄 수 있어요!!

n=4부터 다시 정리할게요!

  • n=4
    • n-1(4-1=3)을 해서 n%3(3%3=0)을 해서 1 출력
    • n//3(3//3=1)을 해서 n-1(1-1=0)을 해서 1출력 => '1'+'1'
  • n=5
    • n-1(5-1=4)을 해서 n%3(4%3=1)을 해서 2 출력
    • n//3(4//3=1)을 해서 n-1(1-1=0)을 해서 1출력 => '2'+'1'
  • n=6
    • n-1(6-1=5)을 해서 n%3(5%3=2)을 해서 4 출력
    • n//3(5//3=1)을 해서 n-1(1-1=0)을 해서 1출력 => '4'+'1'
  • n=7
    • n-1(7-1=6)을 해서 n%3(6%3=0)을 해서 1 출력
    • n//3(6//3=2)을 해서 n-1(2-1=1)을 해서 2출력 => '1'+'2'

이런식으로 결과물을 도출할 수 있습니다. 출력된 결과물 두개를 반대로 뒤집어야 겠네요!
첫번째 줄에서 나온 결과물을 뒤로 보낼 수 있도록 코드를 만들어 봅시닷!!!

결과물

0개의 댓글

관련 채용 정보