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

 

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

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

programmers.co.kr

 

스택/큐 문제이다.

그냥 흘러가는데로 풀어서 좋은 코드인지는 모르겠다.

나중에 다시 수정해봐야지

import java.util.*;
class Solution {
  public int[] solution(int[] progresses, int[] speeds) {
    int[] cnt = new int[progresses.length];
    for (int i = 0; i < progresses.length; i++) {
      int pro = progresses[i];
      while (pro < 100) {
        pro += speeds[i];
        cnt[i]++;
      }
    }

    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(1);
    int start = 0;
    for (int i = 1; i < cnt.length; i++) {
      if (cnt[start] >= cnt[i]) {
        list.set(list.size() - 1, list.get(list.size() - 1) + 1);
      } else {
        list.add(1);
        start = i;
      }
    }
    int[] answer = new int[list.size()];
    for (int i = 0; i < list.size(); i++) {
      answer[i] = list.get(i);
    }
    return answer;
  }
}

+ Recent posts