문제
1. 기능별 작업일수 계산하기
for (int i = 0; i < progresses.length; i++) {
int left = 100 - progresses[i];
int days = left / speeds[i];
daysArr[i] = (left % speeds[i] == 0) ? days : days + 1;
}
2. 배포일 기억해두고, 해당 작업이랑 같이 배포 가능한 작업들 개수 세기
for (int i = 0; i < daysArr.length; i++) {
if (daysArr[i] <= prevMaxDays) {
count++;
} else {
answer.add(count);
count = 1;
prevMaxDays = daysArr[i];
}
}
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] daysArr = new int[progresses.length];
for (int i = 0; i < progresses.length; i++) {
int left = 100 - progresses[i];
int days = left / speeds[i];
daysArr[i] = (left % speeds[i] == 0) ? days : days + 1;
}
List<Integer> answer = new ArrayList<>();
int prevMaxDays = daysArr[0];
int count = 0;
for (int i = 0; i < daysArr.length; i++) {
if (daysArr[i] <= prevMaxDays) {
count++;
} else {
answer.add(count);
count = 1;
prevMaxDays = daysArr[i];
}
}
answer.add(count);
return answer.stream().mapToInt(i -> i).toArray();
}
}
제가 푼 다른 코딩테스트 문제들은 이곳에서도 확인 가능합니다!
https://github.com/eonwy/codingTest
GitHub - eonwy/codingTest: 🔎 coding-test 🔍
🔎 coding-test 🔍. Contribute to eonwy/codingTest development by creating an account on GitHub.
github.com