728x90
나의 풀이
function solution(progresses, speeds) {
var deployCounter = [];
while(progresses.length > 0) {
let completed = 0;
progresses.forEach((el, idx) => {
progresses[idx] += speeds[idx]
})
while(progresses[0] >= 100) {
progresses.shift();
speeds.shift();
completed++;
}
if (completed > 0) {
deployCounter.push(completed)
}
}
return deployCounter;
}
progresses 배열에 아직 요소가 남아있는 한 무한 루프를 돌린다. 루프 도는 동안 각 자리의 progresses에 각 자리의 speed를 더 해주고, progresses를 queue로 보았을 때 peek 시 100 넘어가면 dequeue해준다. 그리고 그 dequeue 카운트를 저장해준다. dequeue한 다음에도 첫번째 배열이 100 이상이면 계속 dequeue하고 카운트를 저장해준다. 이를 while 반복문으로 끝까지 간다.
728x90
'Research > Coding Test' 카테고리의 다른 글
스택/큐_올바른 괄호 (1) | 2023.11.19 |
---|---|
스택/큐_같은 숫자는 싫어 (1) | 2023.11.19 |
정렬_K번째수 (0) | 2023.11.18 |
해시_전화번호 목록 (0) | 2023.11.18 |
해시_폰켓몬 (0) | 2023.11.17 |
댓글