-
728x90
- 일이 끝나는데 걸리는 일수를 queue에 넣는다.
- 만약 queue의 맨 처음에 있는 일보다 오래걸린다면,
1) queue의 크기를 ArrayList에 추가한다.
2) queue를 비운다..- 모든 일의 탐색을 끝낸 후에, queue에 남아있는 일의 개수도 ArrayList에 추가한다.
- ArrayList를 int형 배열로 바꾸어 리턴한다.
import java.util.*;class Solution {public int[] solution(int[] progresses, int[] speeds) {ArrayList<Integer> answer = new ArrayList<Integer>();Queue<Integer> task = new LinkedList<Integer>();for (int i = 0; i< speeds.length; i++) {double day = Math.ceil((100.0 - progresses[i]) / speeds[i]);if(!task.isEmpty() && day > task.peek()) {answer.add(task.size());task.clear();}task.offer((int) day);}if(!task.isEmpty())answer.add(task.size());return answer.stream().mapToInt(i -> i).toArray();}}데롱디롱희희.. (๑′ᴗ‵๑)
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[level2] 프로그래머스 - 소수 찾기(JAVA) (0) 2021.09.14 [level2] 프로그래머스 - 주식가격(JAVA) (0) 2021.09.14 [level3] 프로그래머스 - 여행경로(JAVA) (0) 2021.09.14 [level3] 프로그래머스 - 단어 변환(JAVA) (0) 2021.09.14 [level3] 프로그래머스 - 네트워크(JAVA) (0) 2021.09.14