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

제리·2021년 1월 9일
0

프로그래머스

목록 보기
11/25

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)이다.

profile
흐릿한 잉크가 뚜렷한 기억보다 낫다

0개의 댓글