알고리즘/프로그래머스 문제풀이
[프로그래머스] 기능개발 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