diff --git a/programmers/기능개발/solution.java b/programmers/기능개발/solution.java new file mode 100644 index 0000000..8b7603e --- /dev/null +++ b/programmers/기능개발/solution.java @@ -0,0 +1,47 @@ +// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/42586 + +import java.util.*; +class Solution { + public int[] solution(int[] progresses, int[] speeds) { + int[] answer = {}; + boolean[] done = new boolean[speeds.length]; + ArrayList al = new ArrayList<>(); + Deque dq = new LinkedList<>(); + int day = 0, check = 0, start = 0; + while(check==0){//Day + day++; + for(int a = 0; a < speeds.length; a++){ + if(!done[a]){ + if(progresses[a]<100){ + progresses[a] += speeds[a]; + } else { + done[a] = true; + dq.addFirst(a); + } + } + } + for(int a = start; a < speeds.length; a++){ + if(a == speeds.length-1 && done[a]) check = 1; + if((!done[a] && dq.size()!= 0 )||check==1){ + Iterator it = dq.iterator(); + int numb = 0; + while(it.hasNext()){ + if(it.next()<=a) { + it.remove(); + numb++; + } + } + if(numb!=0) al.add(numb); + } + if(done[a] && dq.size()!= 0){ + continue; + } else if(!done[a]){ + start = a; + //System.out.println(a); + break; + } + } + } + return al.stream().mapToInt(Integer::intValue).toArray(); + } +} \ No newline at end of file