on
프로그래머스 - 기능개발(JAVA)
프로그래머스 - 기능개발(JAVA)
프로그래머스 - 기능개발 : https://programmers.co.kr/learn/courses/30/lessons/42586
스택 활용 카테고리에 있지만 ArrayList 와 while 문을 활용하여 그리디하게 작성함.
public static int[] solution(int[] progresses, int[] speeds) { int index = 0; int day = 1; int[] remainder = new int[progresses.length]; int[] remain_day = new int[progresses.length]; // 작업과 진도로 완료시점을 계산한다. for (int i = 0; i < progresses.length; i++) { remainder[i] = 100 - progresses[i]; if (remainder[i] % speeds[i] == 0) remain_day[i] = remainder[i] / speeds[i]; else remain_day[i] = remainder[i] / speeds[i] + 1; } ArrayList list = new ArrayList(); ArrayList ans = new ArrayList(); //최초의 배포 ans.add(1); //작업완료시점 배열 for(int i = 0;i=list.get(j)) { int a = ans.get(ans.size()-1) + 1; ans.set(ans.size()-1, a); j++; k++; } // 앞의 기능이 먼저 완성되는 경우 다음 배포로 넘어간다. else { ans.add(1); i+=k; j=i+1; k=1; } } break; } //정답 복사 int[] answer = new int[ans.size()]; for(int i1=0;i1
from http://charm-charm.tistory.com/27 by ccl(A) rewrite - 2021-12-22 23:01:21