728x90
반응형
순서가 바뀌면 안 되는 작업 진척률 progresses와 speeds를 반복문을 돌며 앞 인덱스가 다 되어야 배포를 하는 방식이다.
반복문을 돌면서 진척률이 100이 되었다면 100 인애들 다 앞에서부터 배포하고
100이 안됐다면 speeds만큼 더하면 된다.
👨🏻💻나의 풀이
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
ArrayList<Integer> list = new ArrayList<>();
int index = 0;
while (true) {
int count = 0;
if (progresses[index] >= 100) {
for (int i = index; i < progresses.length; i++) {
if (progresses[i] >= 100) {
count++;
index++;
} else {
break;
}
}
if (count != 0) list.add(count);
} else {
for (int i = index; i < progresses.length; i++) {
progresses[i] += speeds[i];
}
}
if (index == progresses.length && progresses[progresses.length - 1] >= 100) {
break;
}
}
return list.stream().mapToInt(i->i).toArray();
}
}
정말 말 그대로 푼 것 같다.
어디까지 배포됐는지 확인을 위한 index와 배포 갯수를 체크할 count가 있다.
첫 번째 배열이 100이 넘었다면 배포가 가능하고, 배열을 돌며 100이 넘는 요소를 검사해 배포될 개수를 증가한다.
배포가 됐으니 index도 증가해야한다.
만약 100이 안 넘는다면 배포 안된 인덱스부터 전체 프로그래스를 speed를 누적한다.
배포 개수를 예측할 수 없기에 ArrayList에 배포 갯수를 담아 int array로 리턴을 했다.
레벨 2도 어렵다.. 공부열심히 해야겠다
728x90
728x90
'알고리즘' 카테고리의 다른 글
LeetCode Valid Anagram (0) | 2023.07.28 |
---|---|
프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2022.02.18 |
프로그래머스]두 개 뽑아서 더하기 (0) | 2022.01.31 |
알고리즘] 1부터 n까지의 소수 갯수 찾기 및 출력 (0) | 2021.11.29 |
문자열 압축 [java] (0) | 2021.10.24 |
댓글