2022이전/알고리즘(하루에하나씩!)
기능개발(ArrayList 개념)
바로퇴장
2020. 2. 29. 16:57
문제 : https://programmers.co.kr/learn/courses/30/lessons/42586
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
ArrayList<Integer> array = new ArrayList();
Queue<Integer> work = new LinkedList<Integer>();
int done_count = 0; //완료 갯수
int done_day = 0; // 완료일
for(int i=0; i<progresses.length; i++){
work.add((100 - progresses[i]) / speeds[i]);
} //큐에 채우기
while(!work.isEmpty()){
System.out.println("갯수 : " + done_count
+ " 최대 날짜 " + done_day
+ " queue 크기 " + work.size());
if(done_day >= work.peek()){ // 날짜 기준보다 작으면 count 추가
done_count++;
work.poll();
}
else{ // 날짜 기준보다 작으면 count 초기화
array.add(done_count);
done_count = 1;
done_day = work.poll();
}
if(work.isEmpty()){ //마지막 큐일때
array.add(done_count);
}
}
int[] answer = new int[array.size()-1];
for(int i=1; i<array.size(); i++){
answer[i-1] = array.get(i);
System.out.println(array.get(i));
}
return answer;
}
}
주로 사용된 메서드
ListArray
정의 : ArrayList<Integer> array = new ArrayList(); //int형으로 arraylist를 만든다.
사용 : 동적배열에 주로 사용된다.
메서드 이름 |
기능 |
add(element) |
element를 배열 뒤에 추가 |
size() |
배열 크기 반환 |
get(index) |
index 원소 참조 |
add(index, element) |
index에 element 추가 (변경x) |
set(index, element) |
index 원소 변경 |
indexOf(element) |
element의 index 반환, 없으면 -1 |
contains(element) |
element가 배열에 존재하면 true, 없으면 false 반환 |