IT/CodingTeest

[프로그래머스] 기능개발

haemni 2022. 3. 1. 12:48
728x90
반응형
SMALL

https://programmers.co.kr/learn/courses/30/lessons/42586

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr

 

mport java.util.*;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
         LinkedList <Integer> list = new LinkedList<>();

        /*
        1. 개발 순서는 다 다름
        2. 앞 기능이 배포될때 뒷 기능은 함께 배포
        3. 배포는 하루에 한 번만 이루어짐 
        7일 걸리고 3일걸리고 9일 걸림 

        ----> 
        */

        Queue <Integer> q = new LinkedList<>();
        int pushNum= 0 ;

        for(int i= 0; i<progresses.length; i++) {
           pushNum = (100 - progresses[i])/speeds[i];
           if((100-progresses[i]) % speeds[i] != 0 ){
               pushNum += 1;
           }
           q.offer(pushNum);
        }

     /*
     1
     20
     1
     1
     10
     5
     */
        int first = 0;
        int second = 0;
        int temp = 1;
        while(!q.isEmpty()){
            first  = q.poll();

            while(!q.isEmpty()) {
                second = q.peek();
                if(first>= second) {
                    q.poll();
                    temp++;
                }else{
                    list.add(temp);
                    temp = 1;
                    break;
                }

            }
            if(q.isEmpty()){
                list.add(temp);
            }
        }
           int [] answer= new int[list.size()];

         for(int i = 0; i<list.size(); i++) {
             answer[i] = list.get(i);
        }
        return answer;
    }
}
반응형
LIST