Skip to content

Commit 02bdd37

Browse files
committed
Feature dev / 심화
1 parent d187a4c commit 02bdd37

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// https://school.programmers.co.kr/learn/courses/30/lessons/42586
2+
3+
const solution = (progresses, speeds) => {
4+
let result = [];
5+
const expectedTerm = progresses.map((progress, i) => {
6+
return Math.ceil((100 - progress) / speeds[i]);
7+
});
8+
let ready = expectedTerm[0];
9+
let featCnt = 1;
10+
for (let i = 1; i < expectedTerm.length; i++) {
11+
if (ready >= expectedTerm[i]) {
12+
featCnt++;
13+
} else {
14+
result = [...result, featCnt];
15+
featCnt = 1;
16+
ready = expectedTerm[i];
17+
}
18+
}
19+
result = [...result, featCnt];
20+
return result;
21+
};
22+
23+
// 큐를 활용한 버전
24+
function solution(progresses, speeds) {
25+
const result = [];
26+
const queue = progresses.map((progress, i) => {
27+
return Math.ceil((100 - progress) / speeds[i]);
28+
});
29+
30+
while (queue.length > 0) {
31+
const day = queue[0];
32+
let featCnt = 0;
33+
34+
while (queue.length > 0 && queue[0] <= day) {
35+
queue.shift();
36+
featCnt++;
37+
}
38+
result.push(featCnt);
39+
}
40+
41+
return result;
42+
}

0 commit comments

Comments
 (0)