function solution(progresses, speeds) {
var answer = [];
let queue = [];
for (let i = 0; i < progresses.length; i++) {
let date = Math.ceil((100 - progresses[i]) / speeds[i]);
queue.push(date);
}
let count = 1;
let first = queue.shift();
while (queue.length > 0) {
let cur = queue.shift();
if (cur <= first) {
count++;
} else {
answer.push(count);
count = 1;
first = cur;
}
}
answer.push(count);
return answer;
}
- Math.ceil((100 - progresses[i]) / speeds[i])로 각 기능의 배포 완료 날짜를 구함
- 모든 기능의 배포 날짜를 queue에 저장
- 스택에서 하나씩 꺼내며 이전 배포 날짜와 비교하여 배포 가능한 기능을 하나의 그룹으로 묶음
- 이전 배포 날짜보다 작거나 같은 날짜가 나오면 해당 그룹에 배포 가능한 기능을 추가
- 그렇지 않으면, 배포 그룹을 answer 배열에 추가하고, 새로운 그룹을 시작
- while문을 빠져나오고 나서 마지막으로 남아있는 배포 그룹을 answer에 추가
'[LG 유플러스] 유레카 > 코딩테스트' 카테고리의 다른 글
[JS]프로그래머스 - 피로도 (Lv.2) (0) | 2025.02.25 |
---|---|
[JS]프로그래머스 - 프로세스 (Lv.2) (0) | 2025.02.24 |
[JS]프로그래머스 - 점프와 순간이동 (Lv.2) (0) | 2025.02.24 |
[JS]프로그래머스 - 최솟값 만들기 (Lv.2) (0) | 2025.02.23 |
[JAVA]SWEA - 2001 파리 퇴치 (D2) (0) | 2025.02.23 |