알고리즘/프로그래머스 문제풀이

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

자바칩 프라푸치노 2021. 9. 14. 21:19

🎇 풀이방법

1. 먼저 배포하는데 걸리는 시간을 배열로 만든다.

100에서 93을 빼고 1로 나눈 값

100에서 30을 빼고 30으로 나눈 값 ( 올림처리)

[7, 3, 9]

2. 만든 배열에서 항목 비교 -> 뒤가 앞보다 작으면 그 다음을 비교해야하고 앞이 작으면 answer배열에 넣어야한다.

뒤가 앞보다 작으면 1씩 증가시키고 앞이 비로소 작아졌을때 answer배열에 넣는다.

 

 

 

 

🎇 코드

function solution(progresses, speeds) {
    let answer = [0];
    let days = progresses.map((progress, index) => Math.ceil((100 - progress) / speeds[index]));
    let maxDay = days[0];

    for(let i = 0, j = 0; i< days.length; i++){
        if(days[i] <= maxDay) {
            answer[j] += 1;
        } else {
            maxDay = days[i];
            answer[++j] = 1;
        }
    }

    return answer;
}

 

728x90