일단 위의 표 패턴을 살펴보자
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는 너무 섣부른판단인가보다
다시 착하게 밑으로 가자