[프로그래머스] 코딩테스트 연습 - 스택/큐 Level 2 기능개발

uoahy·2021년 9월 13일
0

Solution.java

import java.util.*;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        int[] answer = {};
        
        int length = progresses.length;
        
        int[] days = new int[length];
        
        for (int i = 0; i < length; i++) {
            days[i] = (int) Math.ceil((100.0 - progresses[i]) / speeds[i]);
        }
        
        ArrayList<Integer> tmp = new ArrayList<>();
        
        int d = days[0];
        
        int n = 1;
        
        for (int i = 1; i < length; i++) {
            if (d < days[i]) {
                tmp.add(n);
                d = days[i];
                n = 1;
            }
            else {
                n++;
            }
        }
        tmp.add(n);
        
        answer = new int[tmp.size()];
        
        for (int i = 0; i < answer.length; i++) {
            answer[i] = tmp.get(i);
        }
        
        return answer;
    }
}

기능별 배포까지 남은 날짜를 계산한 후

현재 최대 남은 날짜보다 작으면 배포가능한 기능 개수 추가,

크면 배포가능한 기능 개수를 저장한 후 1로 초기화하고 최대 남은 날짜를 갱신해주었다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

0개의 댓글