[프로그래머스] Lv2. 기능 개발- JavaScript

이상돈·2023년 10월 18일
0
post-thumbnail

문제분류 : 코팅테스트 연습

난이도 : Level 2

출처 : 프로그래머스 - 기능개발

문제

제한사항

📌 내가 생각한 풀이

우선 남은 일수를 담을 큐배열을 하나 만들고, 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보다 작거나 같은 값을 순차대로 빼면 되는 문제였다.

profile
사람들의 더 나은 삶을 위한 개발자

0개의 댓글