🔗 기능개발
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
// progresses : 작업 진도, speeds : 작업 속도
Deque<Integer> queue=new ArrayDeque<>();
int n=progresses.length;
int[] dayLeft=new int[n];
// 남은 일수 계산
for(int i=0;i<n;i++){
dayLeft[i]=(int)Math.ceil((100.0-progresses[i])/speeds[i]);
}
int count=0;//배포될 작업 수 카운트
int maxDay=dayLeft[0]; // 기준 배포 일
for(int i=0;i<n;i++){
if(dayLeft[i]<=maxDay){ // 기준일이 다음 완료보다 크면
count++;// 같이 배포
}else{ // 기준일보다 작으면
queue.add(count);
count=1;// 초기화
maxDay=dayLeft[i];
}
}
queue.add(count); // 마지막에 카운트된 작업 같이 배포
return queue.stream().mapToInt(Integer::intValue).toArray();
}
}
'코딩테스트 > 문제풀이' 카테고리의 다른 글
[ 프로그래머스 ] #42860 : 조이스틱 - JAVA (1) | 2025.04.17 |
---|---|
[ 프로그래머스 ] #64065 : 튜플 - JAVA (0) | 2025.04.16 |
[ 프로그래머스 ] #42839 : 소수 찾기 - JAVA (0) | 2025.04.14 |
[ etc ] #15 : 요세푸스 문제 - JAVA (0) | 2025.04.12 |
[ 프로그래머스 ] #42747 : H-Index - JAVA (0) | 2025.04.07 |