- 문제
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 풀이
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int[] progresses, int[] speeds) {
//현재 가장 앞에 있는 작업의 인덱스입니다.
int idx = 0;
//작업의 수를 미리 받아, 작업의 완료를 판단하기 위해 사용합니다.
int size = progresses.length;
//정답 배열의 개수를 확신할 수 없기에 ArrayList를 이용해 편하게 입력받았습니다.
ArrayList<Integer> list = new ArrayList<>();
//idx가 size에 도달하면 모든 작업이 배포된 것으로 판단할 수 있습니다.
while(idx<size){
//먼저 그 날에 작업을 진행해줍니다.
for(int i=0; i<size; i++){
progresses[i] += speeds[i];
}
//배포는 하루의 끝에 이루어지기 때문에 작업이 진행된 뒤 판단해줍니다.
if(progresses[idx]>=100){
//일단 해당 if문에 들어왔다는 것은 1개 이상의 작업이 완료되었기에
//cnt를 1로 할당하고, 연속되어 완료된 작업이 있는지 판단합니다.
int cnt = 1;
//다음 작업을 확인합니다.
idx++;
//다음 작업이 size 이내이고, 작업이 완료되어 있다면, 계속 cnt에 추가해주고
//다음 작업을 확인하기 위해 idx를 증가시켜줍니다.
while(idx<size && progresses[idx] >= 100){
cnt++;
idx++;
}
//오늘 하루동안 배포된 작업의 개수를 list에 추가해줍니다.
list.add(cnt);
}
}
//완성된 list를 반환합니다.
return list;
}
}
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스] 전화번호 목록, java (0) | 2025.01.27 |
---|---|
[프로그래머스] 피로도, java (0) | 2025.01.27 |
[프로그래머스] 멀리 뛰기, java (0) | 2024.12.22 |
[프로그래머스] 숫자 문자열과 영단어, java (0) | 2022.12.11 |
[프로그래머스] 문자열 압축, python (0) | 2022.01.01 |