프로그래밍/알고리즘
[ 프로그래머스 : 스택/큐 ] 기능개발
말랑공룡
2020. 10. 23. 16:08
import java.util.*;
/**
* https://programmers.co.kr/learn/courses/30/lessons/42586
*/
public class 기능개발 {
public static void main(String[] args) {
solution(new int[]{1,2,3}, new int[]{100,100,100});
solution(new int[]{93, 30, 55}, new int[]{1, 30, 5});
solution(new int[]{95, 90, 99, 99, 80, 99}, new int[]{1, 1, 1, 1, 1, 1});
}
public static int[] solution(int[] progresses, int[] speeds) {
int period; // 첫번째 배포일
List<Integer> arr = new ArrayList<>();
List<Integer> result = new ArrayList<>();
for(int i=0, len = progresses.length; i<len; i++){
if(len == 1) return new int[]{1};
period = (int) Math.ceil((double)(100 - progresses[i]) / (double)speeds[i]);
result.add(period);
}
System.out.println(result.toString());
int cnt = 1; // 완료 작업 수
int days = result.get(0); // 지나간 날짜 수
for(int i=1, end = result.size();i<end;i++){
if(days < result.get(i)){
arr.add(cnt);
days = result.get(i);
cnt = 1;
}else if(days == result.get(i)){
cnt++;
} else{
cnt++;
}
if(i == end-1){
arr.add(cnt);
}
}
int[] realResult = new int[arr.size()];
for(int i=0;i<realResult.length;i++){
realResult[i] = arr.get(i);
}
System.out.println(Arrays.toString(realResult));
return realResult;
}
}
이것도 다시 한 번 봐야하는데...........
dirty dirty.... 주르륵
언젠가 풀이 시간이 짧아지는 그 날을 기대하며.....ㅠ