728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181885
문제)오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
풀이)
import java.util.ArrayList;
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
ArrayList<String> list = new ArrayList<>();
for(String i:todo_list){
list.add(i);
}
for(int i=0; i< finished.length; i++){
if(finished[i]==true){
list.remove(todo_list[i]);
}
}
String[] answer = new String[list.size()];
for(int i=0; i< answer.length; i++){
answer[i] = list.get(i);
}
return answer;
}
}
'ArrayList'는 자바에서 가변적인 크기의 리스트를 다루고자 할 때 사용하는 컬렉션 클래스이다.
ArrayList를 사용하는 몇가지 상황을 설명하자면,
- 동적 크기의 컬렉션이 필요한 경우 :
- -ArrayList는 크기가 유동적으로 변할 수 있기 때문에, 컬렉션의 크기가 프로그램 실행 중에 동적으로 변하는 경우에 사용하기 좋습니다.
- -예를 들어, 사용자 입력에 따라 데이터의 양이 증가하거나 감소할 수 있을 때 ArrayList를 사용할 수 있습니다.
- 삽입 및 삭제 작업이 필요한 경우:
- -'ArrayList'는 요소를 추가하거나 삭제하는 작업이 쉽고 효율적입니다. 'add()', 'remove()', 'clear()' 등의 메서드를 사용하여 쉽게 요소를 관리할 수 있습니다.
- 인덱스를 통한 요소 접근이 필요한 경우:
- -'ArrayList'는 인덱스 기반으로 요소를 접근할 수 있습니다. 예를 들어, 'get()' 메서드를 사용하여 특정 인덱스의 요소를 가져올 수 있습니다.
- -'set()' 메서드를 사용하여 특정 인덱스의 요소를 변경할 수도 있습니다.
- 순차적인 접근이 필요한 경우:
- -'ArrayList'는 'List' 인터페이스를 구현하므로, 컬렉션의 요소를 순차적으로 접근할 수 있는 반복자(Iterator)나 향상된 for 루프를 사용할 수 있습니다.
- 다양한 컬렉션 작업을 위한 메서드 제공:
- -'ArrayList'는 'List' 인터페이스를 구현하므로, 컬렉션을 정렬하거나, 부분 리스트를 추출하거나, 요소의 인덱스를 찾는 등 다양한 컬렉션 작업을 지원하는 메서드를 제공합니다.
- 컬렉션의 초기 용량을 지정할 수 있는 경우:
- -'ArrayList'는 생성자에서 초기 용량을 지정할 수 있습니다. 이를 통해 컬렉션의 확장 비용을 최소화할 수 있습니다.
728x90
'프로그래밍 > Java(자바)' 카테고리의 다른 글
[프로그래머스] 서울에서 김서방 찾기 --java (0) | 2024.05.22 |
---|---|
[프로그래머스] 주사위 게임3 --java (0) | 2024.04.13 |
[프로그래머스] 배열의 원소 삭제하기 --java (0) | 2024.04.13 |
[프로그래머스] 날짜 비교하기 --java (0) | 2024.04.13 |
[프로그래머스] 배열 만들기 3 --java (0) | 2024.04.13 |