728x90
SMALL
문제 이해
- 진도가 100%가 되는 경우 배포가 되는데 앞의 기능이 끝나기 전까지 뒤의 기능은 배포를 할 수가 없다.
- 뒤의 기능이 앞의 기능의 배포일보다 적다면 앞의 기능 배포날에 같이 배포 된다.
- 개발속도에 따른 각 기능의 배포일을 구해 배열에 담는다.
- 배포일을 두개씩 비교하는데 맨 처음에 나온 값을 first 변수에 넣고 본인보다 큰 값이 나오기전까지 cnt를 증가 시킨다.
- 큰 값이 나오면 이전에 쌓인 cnt를 리스트에 담고 cnt를 초기화 새로운 값이 first 변수에 담긴다.
- 마지막 기능 값이 나오면 그동안 쌓인 cnt를 집어 넣는다.
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] answer = {};
int[] mod = new int[progresses.length];
List<Integer> list = new ArrayList<>();
for(int i = 0; i<progresses.length; i++){
mod[i] = (int)Math.ceil((100.0-progresses[i])/speeds[i]);
}
int cnt = 1;
int first = mod[0];
for(int i = 1; i<mod.length; i++){
if(first >= mod[i]){
cnt++;
}else{
list.add(cnt);
first = mod[i];
cnt = 1;
}
if(mod.length-1 == i){
list.add(cnt);
}
}
answer = new int[list.size()];
for(int i =0; i<list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
728x90
LIST
'자바 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 튜플 - Java(자바) (0) | 2024.03.27 |
---|---|
[프로그래머스] [1차] 캐시 - Java(자바) (0) | 2024.03.27 |
[프로그래머스] 할인 행사 - Java(자바) (0) | 2024.03.26 |
[프로그래머스] 괄호 회전하기 - Java(자바) (0) | 2024.03.26 |
[프로그래머스] 구명보트 - Java(자바) (0) | 2024.03.25 |