function solution(progresses, speeds) {
// 각 기능별 완료까지 걸리는 시간
let days = progresses.map((ele, idx)=>Math.ceil((100-ele)/speeds[idx]))
const answer = []
let count = 1;
// 앞에 있는 기능이 배포될 때까지 걸리는 기간
let prev = days[0];
for(let i = 1 ; i < progresses.length; i++){
// 앞의 기능이 뒤의 기능보다 늦게 완료될 때
if(prev >= days[i]){
count+=1;
}else{
// 앞의 기능이 완료 되었을 때
answer.push(count);
count=1;
prev = days[i];
}
}
answer.push(count);
return answer;
}
function solution(progresses, speeds) {
const length = progresses.length;
let answer = [],
i = 0, // 배열의 인덱스
t = 0, // 완료까지 걸리는 경과 시간
numberOfReleases = 0;
while (i < length) {
numberOfReleases = 1;
t = Math.ceil((100 - progresses[i]) / speeds[i++]);
while (progresses[i] + speeds[i] * t > 99) {
numberOfReleases++;
i++;
}
answer.push(numberOfReleases);
}
return answer;
}
while을 중첩으로 사용,
앞의 기능이 완료되었을 때 뒤에 이미 완료된 기능이 얼마나 있는지를 계산하는 방식