프로그래머스 - 기능개발

아놀드·2021년 8월 2일
0

프로그래머스

목록 보기
8/52

1. 문제

문제 링크

2. 풀이

2-1. 조건

  1. 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포된다.

2-2. 풀이

풀이랄 것도 없는 굉장히 단순한 문제입니다.

  1. 하루 지날 때마다 작업들의 진행률을 높여줍니다.
  2. 맨 앞의 기능의 진행률이 100%라면 뒤에 같이 배포해야될 기능들도 같이 셉니다.
  3. 정답 배열에 카운트를 담습니다.

3. 전체 코드

function solution(progresses, speeds) {
    const ans = [];
    
    while (progresses.length) {
        // 2. 맨 앞의 기능의 진행률이 100%라면 뒤에 같이 배포해야될 기능들도 같이 셉니다.
        if (progresses[0] >= 100) {
            let count = 0;
            
            while (progresses.length && progresses[0] >= 100) {
                count++;
                progresses.shift();
                speeds.shift();
            }

            // 3. 정답 배열에 카운트를 담습니다.
            ans.push(count);
        }

        // 1. 하루 지날 때마다 작업들의 진행률을 높여줍니다.
        speeds.forEach((speed, index) => progresses[index] += speed);
    }

    return ans;
}
profile
함수형 프로그래밍, 자바스크립트에 관심이 많습니다.

0개의 댓글