카테고리 없음

[알고리즘] 124 나라의 숫자 javascript

ShinBW 2022. 1. 28. 21:28

일단 위의 표 패턴을 살펴보자

10진법으로 1 ~ 10일때

124 나라 숫자는

1, 2, 4, 11, 12, 14, 21, 22, 24,

오로지 124만 사용하는 것을 알 수 있다.

나는 이것만 캐치했는데 당장 풀이부터 어떻게 설정해야 할지 막혀

구글링을 하는 도중 다른분들의 캐치는 나와 상당히 달랐다.

나는 멍청하다

 

 

 

 

 

 

 

 

 

 

 

고수님

"나머지가 0 일 때 4가 붙고 1일 때 1, 2일때 2가 붙는 것을 규칙성으로 알 수 있다.

몫이 문제인데 3의 배수가 예외를 만든다. 3의 몫이 1인데 0인 그룹에 넣고 싶고 6의 몫이 2인데 1인 그룹에 들어가야

규칙에 맞다.

1

3의 수의 경우 몫이 0이고 4

6은 몫이 1, 7~9는 몫이 2으로 만들고 싶다.

그렇게 하려면 각 수에서 1을 빼고 나눠주면 된다. n/3 - 1"

4 => 0
1 => 1
2 => 2



function solution(n) {
    let answer = '';
    const numArr = [4, 1, 2]; //나머지 값으로 변환하는 배열생성

    while(n) { //n이 false가 될때까지 반복실행
        answer = numArr[n%3] + answer;
        // 0 == false
        n = n%3 === 0 ? n/3 -1 : Math.floor(n/3); 
    }

    return answer;
}

이부분은 읽어도 이해되지 않아 다른 고수님의 풀이를 퍼왔다.

https://egg-programmer.tistory.com/246

레벨2는 너무 섣부른판단인가보다
다시 착하게 밑으로 가자