[프로그래머스] 기능개발
2020. 3. 25. 12:53ㆍ프로그래머스/LEVEL 2
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] answer = {};
int sol = 0;
int flag;
int[] complete = new int[progresses.length];
ArrayList<Integer> temp = new ArrayList<>();
for(int i=0; i<complete.length; i++){
if((100-progresses[i])%speeds[i] == 0){
complete[i] = (100-progresses[i])/speeds[i];
}else{
complete[i] = (100-progresses[i])/speeds[i] + 1;
}
}
flag = complete[0];
for(int i=0; i<complete.length-1; i++){
if(flag<complete[i+1]){
sol++;
temp.add(sol);
sol=0;
flag = complete[i+1];
}
else{
sol++;
}
if(i == complete.length-2){
sol++;
temp.add(sol);
}
}
answer = new int[temp.size()];
for(int i=0; i<answer.length; i++){
answer[i] = temp.get(i);
}
return answer;
}
}
---------------------------------------------------------------------------------------------------------------------------
2020.06.23
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] answer = {};
int count=1;
List<Integer> remain = new ArrayList<>();
List<Integer> answerList = new ArrayList<>();
for(int i=0; i<progresses.length; i++){
int remainder = 100-progresses[i];
if(remainder%speeds[i]==0){
remain.add(remainder/speeds[i]);
}else{
remain.add(remainder/speeds[i]+1);
}
}
int flag = remain.get(0);
for(int i=0; i<remain.size()-1; i++){
if(flag<remain.get(i+1)){
answerList.add(count);
count=1;
flag = remain.get(i+1);
}else{
count++;
}
}
answerList.add(count);
answer = new int [answerList.size()];
for(int i=0; i<answer.length; i++){
answer[i] = answerList.get(i);
}
return answer;
}
}
1. 완성하는데 얼마나 걸릴지 remain리스트를 만든다.
2. remain리스트를 읽으며 해당 인덱스에서의 작업보다 일찍 끝나거나 같이 끝난 작업이 있으면 count를 올리고, 더 늦게 끝난작업이 있으면 그 때까지의 count를 answerList에 담는다. (이후에 더 일찍끝난 작업이 있더라도 그 작업은 더 늦게 끝난작업이 배포될때까지 배포 될 수 없기 때문에 counting하지 않음.)
3. 기준점 flag를 변경시키며 리스트를 다읽고, 마지막에 존재하는 count를 answerList에 넣는다.
'프로그래머스 > LEVEL 2' 카테고리의 다른 글
[프로그래머스] 피보나치 수 (0) | 2020.03.27 |
---|---|
[프로그래머스] 가장 큰 수 만들기 (0) | 2020.03.25 |
[프로그래머스] 타겟넘버 (0) | 2020.03.24 |
[프로그래머스] 주식가격 (0) | 2020.03.24 |
[프로그래머스] 탑 (0) | 2020.03.24 |