🐣 알고리즘 삐약/✏️ 냅다 덤벼보는 문제풀이

[프로그래머스] 기능개발 | 스택/큐 | lv.2 | JAVA

우주수첩 2024. 10. 31. 20:56
728x90

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

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 
 
 

import java.util.*;
class Solution {
    public ArrayList<Integer> solution(int[] progresses, int[] speeds) {
        int size = speeds.length;
        Queue<Integer> q = new LinkedList<>();
        
        for(int i=0;i<speeds.length;i++){
            boolean flag = ((100-progresses[i]) % speeds[i]) == 0;
            if(flag){
                q.add((100-progresses[i]) / speeds[i]);
            }else{
                q.add((100-progresses[i]) / speeds[i] +1);
            }
            
            // q.add((100-progresses[i]) / speeds[i]);
        }
        ArrayList<Integer> answer = new ArrayList<>();
        
        
        
        int temp = q.poll();
        int count =1;
        
        while(!q.isEmpty()){
            if(temp>=q.peek()){
                count++;
                q.poll();
            }else{
                answer.add(count);
                temp=q.poll();
                count=1;
            }
        }
        answer.add(count);
        
        
        return answer;
    }
}

 

  • progresses/speeds -> 개발 완료 일수 파악
    • 딱 떨어지지 않을 경우 개발 일수 하루 추가
  • peek 값을 비교하여 하루동안 출시 될 수 있는 기능 개수 카운트

 

728x90