프로그래머스 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42586
풀이 방법
처음에 큐 없이 풀 수 있지 않을까 하는 생각에 먼저 풀이 순서를 작성했다.
- progresses배열과 speeds배열로 인덱스마다 작업 소요일을 계산한다.
- 앞에 인덱스와 뒤에 인덱스를 비교하여 앞의 인덱스보다 뒤의 인덱스가 작업 소요일이 더 작거나 같으면 앞의 인덱스가 완료되었을 때, 작거나 같은 인덱스와 함께 배포된다.
- 배포되고 난뒤에 남은 배열의 요소들도 같은 방법으로 배열의 모든 요소가 없어질 때까지 반복한다.
막상 풀고 나니 아래 코드가 결국 큐 같다는 생각이 들었다.
function solution(progresses, speeds) {
let answer = [0];
const Days = progresses.map((item, i)=> Math.ceil((100-item)/speeds[i]));
let MaxDeploy = Days[0];
for (i= 0, j = 0; i < progresses.length; i++){
if (Days[i] <= MaxDay){
answer[j]++
} else {
answer[++j] = 1;
MaxDeploy = Days[i];
}
}
return answer;
}
'Studieeeeee~. > JS Algorism Test' 카테고리의 다른 글
그래프 (4) | 2024.08.25 |
---|---|
js 알고리즘 테스트 환경 VS code로 세팅하기 (0) | 2024.08.22 |
[코테 합격자되기 Js] 문제 17 카드뭉치 (0) | 2024.08.14 |
큐 (0) | 2024.08.13 |
이진 트리 binary tree (0) | 2024.08.13 |