Algorithm/JavaScript

[프로그래머스] 기능개발

🥭맹2 2021. 5. 7. 21:35

1. 문제

programmers.co.kr/learn/courses/30/lessons/42586?language=javascript

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr

2. 접근 방법

파이썬으로 풀 때는 progresses 기준으로 확인했는데,

이번에는 날짜를 기준으로 확인했다.

 

1. 현재 날짜에 맨 앞에 있는 작업이 완료되는지

2. 완료된다면: 언제까지 완료되는지 하나씩 확인

3. 완료되지 않는다면: 완료된 항목이 있는지 확인

3-1. 완료된 항목이 있다면: 현재까지 완료된 항목의 갯수를 push

3-2. 완료된 항목이 없다면: 그냥 pass

3. 코드

Javascript

function solution(progresses, speeds) {
    var answer = [];
    let idx=0;
    let cnt=0;
    for (let i=1; i<100; i++) {
        let progress = progresses[idx]+(i*speeds[idx])
        while (progress>=100) {
            cnt ++;
            idx ++;
            progress = progresses[idx]+(i*speeds[idx])
        }
        if (cnt > 0) {
            answer.push(cnt);
        }
        cnt = 0;
        
        if (idx === progresses.length) {
            return answer;
        }
    }
    return answer;
}

4. 마치며

javascript는 왜 .. append가 아니라 push인거죠 ㅠ