본문 바로가기
Research/Coding Test

스택/큐_기능개발

by RIEM 2023. 11. 19.

나의 풀이

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 반복문으로 끝까지 간다. 

'Research > Coding Test' 카테고리의 다른 글

스택/큐_올바른 괄호  (1) 2023.11.19
스택/큐_같은 숫자는 싫어  (1) 2023.11.19
정렬_K번째수  (0) 2023.11.18
해시_전화번호 목록  (0) 2023.11.18
해시_폰켓몬  (0) 2023.11.17

댓글