문제를 요약하면, 작업은 각자의 스피드로 100%를 채우지만, 배포는 앞에서부터 차례대로 이루어져야 하고, 앞 작업이 완료되었을 때 뒤의 작업도 완료되었다면 한꺼번에 배포가 된다.
맨 앞에서부터 배포가 된다고 해서, Queue를 이용해서 처리해야겠다고 생각했다.
import java.util.\*;
class Solution {
public int\[\] solution(int\[\] progresses, int\[\] speeds) {
List<Integer> answer = new ArrayList<>();
Queue<Integer> queue = new LinkedList<>();
int day = 0;
for(int i=0; i<progresses.length;i++){
queue.add(i);
}
int count = 0;
while(!queue.isEmpty()){
day++;
count = 0;
while(!queue.isEmpty() &&progresses\[queue.peek()\] + (day \* speeds\[queue.peek()\]) >= 100){
count ++;
queue.poll();
}
if(count != 0 ){
answer.add(count);
}
}
return answer.stream().mapToInt(Integer::intValue).toArray();
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[99클럽 코테 스터디] 11일차 TIL - 카드 뭉치 (0) | 2024.08.01 |
---|---|
99클럽 코테 스터디 9일차 TIL - 더 맵게 (0) | 2024.07.30 |
99클럽 코테 스터디 7일차 TIL - 하노이탑 (0) | 2024.07.28 |
선택 안됨 99클럽 코테 스터디 6일차 TIL - 의상 (0) | 2024.07.27 |
99클럽 코테 스터디 5일차 TIL (0) | 2024.07.26 |