forDevLife
[프로그래머스] 기능개발 본문
앞의 작업이 다 끝나지 않으면 뒤로 넘어가지 않는 방식이다. for문에서 index를 초기값으로만 계속 해놔서 무한 while에 걸려 오래걸렸다;
암튼 프로그래머스 방식으로 arr에 넣기 위해, arrayList to array를 기억하자.
import org.junit.Test;
import java.util.ArrayList;
public class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] answer;
int[] copy = progresses;
int L = progresses.length;
int idx = 0;
ArrayList<Integer> arr = new ArrayList<>();
while(idx < L) {
int day = 100 - copy[idx];
int mul = 0;
int result = 0;
int dx = idx;
boolean check = false;
if(day % speeds[idx] != 0) {
mul = (day / speeds[idx]) + 1;
} else
mul = day / speeds[idx];
for(int i=idx; i<L; i++) {
//일단 변경된 날짜로 계산해서 넣기
copy[i] += mul * speeds[i];
if(copy[i] < 100) {
check = true;
}
if(copy[i] >= 100 && !check) {
result++;
dx++;
}
}
idx = dx;
arr.add(result);
}
answer = convertInteger(arr);
return answer;
}
private int[] convertInteger(ArrayList<Integer> arr) {
int[] ret = new int[arr.size()];
for(int i=0; i<ret.length; i++) {
ret[i] = arr.get(i);
}
return ret;
}
@Test
public void 정답() {
int[] p = {95, 90, 99, 99, 80, 99};
int[] s = {1, 1, 1, 1, 1, 1};
solution(p, s);
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (0) | 2021.07.09 |
---|---|
[프로그래머스] 튜플 (0) | 2021.07.08 |
[프로그래머스] 오픈채팅방 (0) | 2021.07.07 |
[백준] 11286 - 절댓값 힙 (0) | 2021.06.30 |
[백준] 1946 - 신입 사원 (0) | 2021.06.29 |
Comments