Skip to content

Commit 00a52cf

Browse files
committed
Add 기능개발.js
1 parent 71a39e5 commit 00a52cf

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

level-2/기능개발.js

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@ function solution(progresses, speeds) {
6262
return answer;
6363
}
6464

65-
66-
6765
// 정답 4 - createhb21
6866
function solution(progresses, speeds) {
6967
// answer은 각 배포 때 함께 배포되는 기능의 수를 담은 배열
@@ -89,3 +87,30 @@ function solution(progresses, speeds) {
8987
answer.push(queue.length);
9088
return answer;
9189
}
90+
91+
// 정답 5 - chaerin-dev
92+
function solution(progresses, speeds) {
93+
// 각 기능 개발 작업이 끝나기까지 남은 일수를 계산해서 daysLeftArr 배열에 저장
94+
const daysLeftArr = progresses.map((progress, i) => Math.ceil((100 - progress) / speeds[i]));
95+
96+
// 최초 배포날은 daysLeftArr의 첫 번째 요소
97+
let deployDay = daysLeftArr[0];
98+
// 각 배포에 몇 개의 기능이 배포될지 셀 변수
99+
let cnt = 0;
100+
// 각 배포에 몇 개의 기능이 배포될지 저장할 배열
101+
const answer = [];
102+
103+
// leftDays 배열을 차례로 순회하며 현재 배포일보다 이후에 배포되어야할 기능을 만나면 이전까지의 기능을 한번에 배포
104+
daysLeftArr.forEach((daysLeft) => {
105+
if (deployDay < daysLeft) {
106+
deployDay = daysLeft;
107+
answer.push(cnt);
108+
cnt = 0;
109+
}
110+
cnt++;
111+
});
112+
answer.push(cnt);
113+
114+
// 정답 반환
115+
return answer;
116+
}

0 commit comments

Comments
 (0)