풀이
class Solution {
static int[] answer = {};
static int[] time;
public int[] solution(int[] progresses, int[] speeds) {
int num = 1; // answer 인덱스 개수
time = new int[progresses.length]; // 각 기능의 완료 시간 배열
// 각 기능 완료시간 구하기
for(int i=0; i<progresses.length; i++){
int count1 = 0;
int a = progresses[i];
int b = speeds[i];
while(a < 100){ // 100%가 되도록 하는 날
a += b;
count1++;
}
time[i] = count1; // 각 기능의 완료 시간 배열에 넣기
}
num = CountIndex(time[0]);
answer = new int[num]; // answer 배열 초기화
SaveIndex(time[0], 0, 1);
return answer;
}
// answer 인덱스 개수 구하기
private int CountIndex(int first){
int num = 1;
for(int i=1; i<time.length; i++){
if(time[i] > first){
num++;
first = time[i];
}
}
return num;
}
// answer 배열에 값 넣기
private void SaveIndex(int first, int index, int num){
// index : 인덱스 변수
// num : 같이 배포할 개수
for(int i=1; i<time.length; i++){
if(time[i] > first){ // 같이 배포 불가능
answer[index] = num;
index++;
num = 1;
first = time[i];
}else{ // 같이 배포 가능
num++;
}
if(i==time.length-1){ // 마지막 인덱스일때 answer 배열에 기록
answer[index] = num;
}
}
}
}
결과
'코딩 문제 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 코딩테스트 - Level2 - 주식가격 (0) | 2021.02.22 |
---|---|
프로그래머스 - 코딩테스트 - Level2 - 124 나라의 숫자 (0) | 2021.02.22 |
프로그래머스 - 코딩테스트 - Level1 - K번째수 (0) | 2021.02.22 |
프로그래머스 - 코딩테스트 - Level1 - 체육복 (0) | 2021.02.22 |
프로그래머스 - 코딩테스트 - Level1 - 모의고사 (0) | 2021.02.22 |