IT/Programmers
[프로그래머스/Javascript/Stack+Queue] 기능개발
파티에
2021. 4. 6. 22:32
1. 문제설명(출처: programmers.co.kr/learn/courses/30/lessons/42586)
2. 문제풀이
1) 시간 순서에 따라서 배포되는 기능의 갯수를 저장하기 위해 answer이라는 stack을 생성한다.
2) 개발중인 기능의 갯수만큼 아래의 명령을 반복한다.
2-1) 배포할 기능의 갯수를 저장할 cnt 변수를 생성한다.
2-2) 각각의 기능에 대하여 개발 속도만큼 개발을 진행한다.
2-3) 먼저 배포되어야할 기능이 배포준비가 완료되었다면, 아직 배포준비가 안된 기능이 나올 때까지 아래의 명령을 반복한다.
2-3-1) 현재 작업을 배포한다.
2-3-2) 현재 작업을 종료한다.(더 이상 개발하지 않음)
2-3-3) 배포할 기능의 갯수에 1을 더해준다.
2-4) 배포할 기능이 있는지 확인한다.
2-4-1) 배포할 기능이 있다면 배포할 기능의 갯수를 answer에 push한다.
3) 결과 반환
3. 결과코드
function solution(progresses, speeds) {
var answer = [];
while(progresses.length){
let cnt = 0
progresses = progresses.map((progresses, i) => progresses + speeds[i])
while(progresses[0] >= 100){
progresses.shift()
speeds.shift()
cnt += 1
}
if(cnt != 0){
answer.push(cnt)
}
}
return answer;
}