하루에 한 문제
[프로그래머스] 기능개발 -Java 본문
https://programmers.co.kr/learn/courses/30/lessons/42586
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int len=progresses.length;
List<Integer> list = new ArrayList<>();
int start=0;
int cnt=0;
int arraysize=0;
while(true) {
for(int i=start; i<len; i++) {
progresses[i]+=speeds[i];
}
for(int i=start; i<len; i++) {
if(progresses[i]>=100) {
start++;
cnt++;
}
else {
break;
}
}
if(cnt>0) {
list.add(cnt);
cnt=0;
arraysize++;
}
if(start==len) break;
}
int answer[]=new int[arraysize];
int s=list.size();
for(int i=0; i<s; i++) {
answer[i]=list.get(i);
}
System.out.println(Arrays.toString(answer));
return answer;
}
}
소요시간 : 25분
우선 progresses의 크기만큼 for문을 돌면서 speeds를 더해줍니다.
그 후 progresses가 100이 넘었는지 확인합니다
i. 넘었다면 -> 배포갯수를 하나 올리고, 인덱스를 다음으로 넘겨줍니다.
ii. 못넘었따면 -> list에 배포갯수를 add해줍니다.
위의 로직처럼 푼다면 정답이 금방 나옵니다!
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 2020카카오 인턴쉽] 수식 최대화 -Java (0) | 2021.01.21 |
---|---|
[프로그래머스] 숫자의 표현 -Java (2) | 2021.01.19 |
[프로그래머스] 피보나치 수 -Java (0) | 2021.01.17 |
[프로그래머스 Summer/Winter Coding(~2018)]스킬트리 -Java (1) | 2021.01.15 |
[프로그래머스] 땅따먹기 -Java (0) | 2021.01.14 |
Comments