Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
[프로그래머스][Java][Lv.2] 기능개발 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42586
내가 푼 풀이
poll를 while문 들어가기 전에 먼저 하고, 분기처리할때마다 poll했다.
남아있는 cnt를 추가했다.
import java.util.*;
public class Solution {
public int[] solution(int[] progresses, int[] speeds) {
Queue<Integer> Q = new LinkedList<>();
for (int i = 0; i < progresses.length; i++) {
int remainProcess = 100 - progresses[i];
int tmp = speeds[i];
int completeDate = (remainProcess % tmp == 0) ? remainProcess/tmp : (remainProcess/tmp) + 1;
Q.offer(completeDate);
}
int cnt = 1;
Integer a = Q.poll();
List<Integer> list = new ArrayList<>();
while(!Q.isEmpty()) {
if (a >= Q.peek()) {
cnt++;
Q.poll();
} else {
list.add(cnt);
cnt = 1;
a = Q.poll();
}
}
list.add(cnt);
int[] answer = new int[list.size()];
for (int i = 0; i < answer.length; i++) {
answer[i] = list.get(i);
}
return answer;
}
}
테스트 1 〉 | 통과 (0.13ms, 75.6MB) |
테스트 2 〉 | 통과 (0.29ms, 78.7MB) |
테스트 3 〉 | 통과 (0.25ms, 74.4MB) |
테스트 4 〉 | 통과 (0.21ms, 74.3MB) |
테스트 5 〉 | 통과 (0.17ms, 75.7MB) |
테스트 6 〉 | 통과 (0.17ms, 67.2MB) |
테스트 7 〉 | 통과 (0.28ms, 71.7MB) |
테스트 8 〉 | 통과 (0.23ms, 71MB) |
테스트 9 〉 | 통과 (0.20ms, 69.3MB) |
테스트 10 〉 | 통과 (0.19ms, 67.8MB) |
테스트 11 〉 | 통과 (0.14ms, 74MB) |
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Java][Lv.1] 최소 직사각형 (0) | 2023.10.04 |
---|---|
[프로그래머스][Java][Lv.1] k번째 수 (0) | 2023.10.04 |
[프로그래머스][Java][Lv.2] 올바른 괄호 (0) | 2023.10.03 |
[프로그래머스][Java][Lv.2] 의상 (1) | 2023.10.03 |
[프로그래머스][Java][Lv.2] 전화번호 목록 (0) | 2023.10.03 |