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

https://programmers.co.kr/learn/courses/30/lessons/42586

function solution(progresses, speeds) {
    var answer = [];
    let cur = 0;
    
    while(cur < progresses.length){
        let cnt = 0
        let flag = true
        let last
        for(let i = cur; i < progresses.length; i++){
            progresses[i] += speeds[i]
            if(progresses[i] >= 100 && flag){
                cnt++
                last = i
            }
            else flag = false
        }
        if(cnt){
            answer.push(cnt)
            cur = last+1
        }
    }
    
    return answer;
}

while문을 통하여 매일 기능개발 진도율을 각기 스피드에 맞춰 업데이트 하였다.
그리고 100이 넘어가는 경우 flag를 이용해서 연속적인 다음날까지 100인값을 체크하여 그만큼의 기능개발 수를 더하였다.
시간복잡도는 O(N)이다.

좋은 웹페이지 즐겨찾기