728x90
문제

풀이
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
Queue<Integer> q = new LinkedList<>();
List<Integer> answerList = new ArrayList<>();
for (int i = 0; i < speeds.length; i++) {
double remain = (100 - progresses[i]) / (double) speeds[i]; //남은 작업일 계산
int date = (int) Math.ceil(remain);//정수형으로 변환
if (!q.isEmpty() && q.peek() < date) { //남은 작업일이 큐의 첫번째 값 보다 클 경우에 list에 추가함
answerList.add(q.size());
q.clear();//이후 큐에 들어있는 값 모두 제거
}
q.offer(date);//큐에 남은 작업일 추가
}
answerList.add(q.size());
int[] answer = new int[answerList.size()];
for (int i = 0; i < answer.length; i++) {
answer[i] = answerList.get(i);
}
return answer;
}
}
처음에 stack으로 푸는줄 알고 뻘짓했다...
728x90
'프로그래머스 & 백준' 카테고리의 다른 글
[SQL] - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.06.13 |
---|---|
[SQL] - 오랜 기간 보호한 동물(2) (0) | 2023.06.12 |
[프로그래머스/JAVA] - 피보나치의 (0) | 2023.04.25 |
[프로그래머스/JAVA] - 다음 큰 숫자 (0) | 2023.04.25 |
[프로그래머스/JAVA] - 숫자의 표현 (0) | 2023.04.24 |
728x90
문제

풀이
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
Queue<Integer> q = new LinkedList<>();
List<Integer> answerList = new ArrayList<>();
for (int i = 0; i < speeds.length; i++) {
double remain = (100 - progresses[i]) / (double) speeds[i]; //남은 작업일 계산
int date = (int) Math.ceil(remain);//정수형으로 변환
if (!q.isEmpty() && q.peek() < date) { //남은 작업일이 큐의 첫번째 값 보다 클 경우에 list에 추가함
answerList.add(q.size());
q.clear();//이후 큐에 들어있는 값 모두 제거
}
q.offer(date);//큐에 남은 작업일 추가
}
answerList.add(q.size());
int[] answer = new int[answerList.size()];
for (int i = 0; i < answer.length; i++) {
answer[i] = answerList.get(i);
}
return answer;
}
}
처음에 stack으로 푸는줄 알고 뻘짓했다...
728x90
'프로그래머스 & 백준' 카테고리의 다른 글
[SQL] - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.06.13 |
---|---|
[SQL] - 오랜 기간 보호한 동물(2) (0) | 2023.06.12 |
[프로그래머스/JAVA] - 피보나치의 (0) | 2023.04.25 |
[프로그래머스/JAVA] - 다음 큰 숫자 (0) | 2023.04.25 |
[프로그래머스/JAVA] - 숫자의 표현 (0) | 2023.04.24 |