Algorithm & Data Structures/Programers
Lv 2. 기능개발
Geisha
2024. 6. 10. 15:30
이번문제는 queue에다가 기능개발에 소요되는 각각의 기능들의 소요일수를 저장 해 놓고 하나씩 빼보며 몇개를 연속으로 뺄 수 있나 체크하고 기록하여 출력하였다.
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
List<Integer> resultList = new ArrayList<>();
int max = -1000, memory = 0;
Queue<Integer> q = new ArrayDeque<>();
for(int i = 0 ; i < progresses.length ; i++ ){
if((100 - progresses[i]) % speeds[i] == 0)
q.add((100 - progresses[i]) / speeds[i]);
else
q.add((100 - progresses[i]) / speeds[i] + 1);
}
while(!q.isEmpty()){
if(max >= q.peek()){
memory += 1;
q.poll();
}
else{
if(memory != 0){
resultList.add(memory);
memory = 0;
}
max = q.peek();
memory = 1;
q.poll();
}
}
resultList.add(memory);
int[] answer = new int[resultList.size()];
for(int i = 0; i < resultList.size(); i++) {
answer[i] = resultList.get(i);
}
return answer;
}
}