우선 남은 일수를 담을 큐배열을 하나 만들고, shift를 쓰면서 남은 일수가 0보다 작거나 같을 경우 계속 하나씩 shift하자.
function solution(progresses, speeds) {
var answer = [];
let remain = [];
let stack = [];
let len = progresses.length;
progresses.forEach((d, i) => {
remain[i] = Math.ceil((100 - d) / speeds[i]);
});
while (remain.length) {
let a = remain[0];
remain = remain.map(d => d - a);
let sum = 0;
while (remain[0] <= 0) {
remain.shift();
sum++;
}
answer.push(sum);
}
return answer;
}
남은일수를 담을 큐를 만든다음, 0보다 작거나 같은 값을 순차대로 빼면 되는 문제였다.