각 기능의 작업 상황과 개발 속도를 인자로 받아 각 배포마다 몇 개의 기능이 배포되는지를 구하는 문제이다.
각 기능의 개발속도는 모두 다르지만 뒤에 있는 기능이 먼저 완료되더라도 앞에 있는 기능이 배포될 때까지 기다렸다가 함께 배포되야한다.
더 자세한 문제 설명은 여기로!
https://programmers.co.kr/learn/courses/30/lessons/42586
function solution(progresses, speeds) { //작업의 개발 속도 배열, 스피드 배열
// 배포시마다 배포되는 기능 갯수를 배열로 리턴
// 먼저 들어간 작업이 먼저 처리되어야 한다. (선입선출) => 큐
let works = progresses.map((work,idx) => Math.ceil((100-work)/speeds[idx]))
let result = []
let count = 1
let first = works[0]
//[5,10,1,1,20,1]
for(let i=1; i<works.length; i++) {
if(first >= works[i]) {
count++
} else {
result.push(count)
count = 1
first = works[i]
}
}
result.push(count)
return result
}