🎇 풀이방법
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
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스] 내적 javascript (0) | 2021.09.30 |
---|---|
[프로그래머스] 포켓몬 javascript (0) | 2021.09.30 |
[프로그래머스] 완주하지 못한 선수 javascript (0) | 2021.09.14 |
[프로그래머스] 문자열 압축 javascript (0) | 2021.09.14 |
[프로그래머스] 위장 java / HashMap 사용 (0) | 2021.06.01 |