From 88d1788d10864df52505a5c1b0135552bdeacd22 Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Thu, 29 Dec 2022 06:32:55 +0900 Subject: [PATCH] =?UTF-8?q?uploaded=20at=202022.=2012.=2029.=20=EC=98=A4?= =?UTF-8?q?=EC=A0=84=206:32:54?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- programmers/기능개발/solution.java | 47 ++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 programmers/기능개발/solution.java 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