프로그래머스-기능개발

이호영·2022년 4월 5일
0
import java.util.*;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
       Queue<Integer> q = new LinkedList<Integer>();
		Queue<Integer> workDay = new LinkedList<Integer>();
		ArrayList<Integer> result = new ArrayList<Integer>();

		for (int i = 0; i < progresses.length; i++) {
			q.add(100 - progresses[i]); // 남은 진도 queue에 넣기
		}

		for (int j = 0; j < speeds.length; j++) {
			if (q.peek() % speeds[j] == 0) {
				workDay.add(q.poll() / speeds[j]);
			} else { // 나누어 떨어지지 않을 때 + 1
				workDay.add(q.poll() / speeds[j] + 1);
			}
		}

		int first = workDay.poll();
		int count = 1;

		for (int i = 1; i < progresses.length; i++) {
			if (first < workDay.peek()) {
				first = workDay.peek();
				result.add(count);
				count = 0;
			}
			workDay.poll();
			count++;

		}
		result.add(count);

		int[] answer = new int[result.size()];
		for (int c = 0; c < answer.length; c++) {
			answer[c] = result.get(c);
		}
		return answer;

	}
}

0개의 댓글