section 배열의 앞에서부터 한 번 롤러로 칠할 수 있는 범위 내에 있는 원소 값을 빼며 결과를 더했다.
function solution(n, m, section) {
var answer = 0;
let cur=0;
while(section.length !== 0){
let cur = section[0];
for(let i=0;i<section.length;i++){
if(section[i] <= cur+m-1){
section.shift();
i--; // section의 첫번째 원소가 빠지면서 그 다음 원소가 첫 번째 원소가 되므로 i를 되돌려주어야 한다.
}
else break;
}
answer++;
}
return answer;
}
📌 shift() - arr.shift()
; 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환한다.
- 배열에서 제거한 요소를 반환한다.
*빈 배열의 경우에는 undefined를 반환한다.- 배열의 길이를 변하게 한다.
*ENZYMATIC 님의 코드를 참고하였습니다.
1. 이중 반복문 대신 포인터를 옮겨 단일 반복문으로
function solution(n, m, section) {
var answer = 0;
let cur=0;
for(let i=0;i<section.length;i++){
if(cur < section[i]){
answer++;
cur = section[i]+m-1;
}
}
return answer;
}