문제 : https://programmers.co.kr/learn/courses/30/lessons/42586?language=java
기본적으로 큐를 이용하면 쉽게 해결할 수 있는 문제였다.
다만 ArrayList로 변경하는 과정이나 remove 등을 사용해야하는 Java의 문법이 익숙치 않았다.
ArrayList를 활용하는 방법과 remove 등의 문법에 익숙해지기!
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
ArrayList a = new ArrayList<Integer>();
// ArrayList
ArrayList p = new ArrayList<Integer>(progresses.length);
ArrayList s = new ArrayList<Integer>(speeds.length);
for(int e : progresses)
p.add(Integer.valueOf(e));
for(int e : speeds)
s.add(Integer.valueOf(e));
// 반복문
while(p.size() != 0){
int cnt = 0; // 배포 수
// 하나씩 더하기
for(int i=0; i< p.size(); i+=1)
p.set(i, (int)p.get(i) + (int)s.get(i));
// 100 넘는 것 처리
while(p.size()!=0){
if((int)p.get(0)>=100){
cnt+=1;
p.remove(0);
s.remove(0);
}
else
break;
}
// 0이 아니면 정답 추가
if(cnt != 0)
a.add(cnt);
}
int[] answer = new int[a.size()];
for(int i=0; i<a.size(); i++)
answer[i]= (int)a.get(i);
return answer;
}
void print(List al){
for(Object e : al){
System.out.println(e);
}
}
}
'Archived(CSE Programming) > 알고리즘(Java)' 카테고리의 다른 글
프로그래머스 거스름돈(Java, LV3) /DP (0) | 2020.10.17 |
---|---|
프로그래머스 - 멀쩡한 사각형(Java, LV2) (0) | 2020.10.16 |
프로그래머스 - 주식가격(Java, LV2) (0) | 2020.10.16 |
프로그래머스 타겟 넘버 (2) | 2020.03.15 |
프로그래머스 큰 수 만들기 (0) | 2020.01.12 |