40분
100/100
이런식으로 직접 표현했다.
첫번째줄 : 나오는 값 숫자
두번째줄 : index
세번째줄 : /4했을때
네번째줄 : %4했을때
function solution(n, start, end) {
const answer = [];
while(start<=end){
let divide = Math.floor(start/n)
let remain = Math.floor(start%n)
if(divide >= remain)
answer.push(divide+1)
else
answer.push(divide + 1 + remain-divide)
start++;
}
return answer
}
규칙성을 찾아 풀었다.
function solution(n, left, right) {
const length = right - left + 1;
const answer = Array.from({ length }, (_, index) => ((index + left) % n) + 1);
for (let i = 0; i < length; i++) {
const currentIndex = i + left;
const number = Math.floor(currentIndex / n) + 1;
const isSequentialNumber = currentIndex % n >= number;
if (isSequentialNumber) {
continue;
}
answer[i] = number;
}
return answer;
}
이런식으로 풀었는데
기본으로 전부 가로를 순차적으로 맞췄다.
예를들어 n=3이면 [[1,2,3],[1,2,3],[1,2,3]]
이런식으로 맞춰 주었다.
그 후에 순차적이지 않은 부분에 대해서만 해당 줄에 있는 행을 값을 넣어주면 문제와 같이 만들 수 있다.