728x90

https://school.programmers.co.kr/learn/courses/30/lessons/181885

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제)오늘 해야 할 일이 담긴 문자열 배열 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를 사용하는 몇가지 상황을 설명하자면,

  1. 동적 크기의 컬렉션이 필요한 경우 :
      -ArrayList는 크기가 유동적으로 변할 수 있기 때문에, 컬렉션의 크기가 프로그램 실행 중에 동적으로 변하는 경우에 사용하기 좋습니다.
      -예를 들어, 사용자 입력에 따라 데이터의 양이 증가하거나 감소할 수 있을 때 ArrayList를 사용할 수 있습니다.
  2. 삽입 및 삭제 작업이 필요한 경우:
      -'ArrayList'는 요소를 추가하거나 삭제하는 작업이 쉽고 효율적입니다. 'add()', 'remove()', 'clear()' 등의 메서드를 사용하여 쉽게 요소를 관리할 수 있습니다.
  3. 인덱스를 통한 요소 접근이 필요한 경우:
      -'ArrayList'는 인덱스 기반으로 요소를 접근할 수 있습니다. 예를 들어, 'get()' 메서드를 사용하여 특정 인덱스의 요소를 가져올 수 있습니다.
      -'set()' 메서드를 사용하여 특정 인덱스의 요소를 변경할 수도 있습니다.
  4. 순차적인 접근이 필요한 경우:
      -'ArrayList'는 'List' 인터페이스를 구현하므로, 컬렉션의 요소를 순차적으로 접근할 수 있는 반복자(Iterator)나 향상된 for 루프를 사용할 수 있습니다.
  5. 다양한 컬렉션 작업을 위한 메서드 제공:
      -'ArrayList'는 'List' 인터페이스를 구현하므로, 컬렉션을 정렬하거나, 부분 리스트를 추출하거나, 요소의 인덱스를 찾는 등 다양한 컬렉션 작업을 지원하는 메서드를 제공합니다.
  6. 컬렉션의 초기 용량을 지정할 수 있는 경우:
      -'ArrayList'는 생성자에서 초기 용량을 지정할 수 있습니다. 이를 통해 컬렉션의 확장 비용을 최소화할 수 있습니다.
728x90