https://school.programmers.co.kr/learn/courses/30/lessons/42586
문제 분류 : 코딩테스트 연습 > 스택/큐 > 기능개발
난이도 : 2
정답 코드
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
ArrayList<Integer> list = new ArrayList<>();
Queue<Integer> q = new LinkedList<>();
for(int i = 0; i < progresses.length; i++){
int remain = 100 - progresses[i];
int speed = speeds[i];
int sum = 0;
sum = (remain / speed) +(remain % speed == 0 ? 0 : 1);
q.add(sum);
}
int cur = 0;
while(!q.isEmpty()){
int cnt = 1;
cur = q.poll();
while(!q.isEmpty() && q.peek() <= cur){
q.poll();
cnt++;
}
list.add(cnt);
}
int [] answer = new int [list.size()];
for(int i = 0; i < list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
'Algorithm > Programmers Java' 카테고리의 다른 글
[Java] 프로그래머스 level3 연속 펄스 부분 수열의 합 (0) | 2024.04.19 |
---|---|
[Java] 프로그래머스 level3 가장 긴 팰린드롬 (1) | 2024.04.19 |
Java 프로그래머스 프로세스 (0) | 2024.03.04 |
Java 프로그래머스 소수 찾기 (0) | 2024.03.04 |
Java 프로그래머스 더 맵게 (0) | 2024.03.04 |