99클럽 코테 스터디 3일차 TIL + 오늘의 학습 키워드

angie·2024년 5월 22일

TIL

목록 보기
3/6

해결 방법

문제: 기능개발

현재 배포 주기의 기준일보다 더 빨리 또는 동시에 완료되는 작업인 경우, cnt를 증가시킨다. 현재 배포 주기의 기준일보다 늦게 완료되는 작업인 경우, 현재까지의 작업 수를 answerList에 추가하고, 새로운 배포 주기를 시작한다.

import java.util.*;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        ArrayList<Integer> answerList = new ArrayList<>();
        
        int period = 0;
        int cnt = 1;
        for (int i = 0; i < progresses.length; i++) {
            int speed = (int) Math.ceil((100.0 - progresses[i]) / speeds[i]); 
            if (period >= speed) {
                cnt += 1;
            } else {
                if (i != 0) { 
                    answerList.add(cnt);
                }
                period = speed;
                cnt = 1;
            }
        }
        answerList.add(cnt); 
        
        int[] answer = new int[answerList.size()];
        for (int i = 0; i < answerList.size(); i++) {
            answer[i] = answerList.get(i);
        }
        
        return answer;
    }
}
profile
열심히 달리는 개발자

0개의 댓글