[프로그래머스] Lv.0 할 일 목록

이다혜·2023년 10월 26일
0

프로그래머스

목록 보기
29/61
post-thumbnail

📎 문제 출처


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

📌 문제 설명


오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

❓ 풀이 방법


  1. 처음에 정답 배열의 크기를 알 수 없으니 ArrayList로 만든 후 배열로 변환하는 방법을 사용했다.
  2. finished가 false일 때 문자열에 todo_list 연결하고 그 뒤에 "," 붙여서 마지막에 "," 기준으로 split

📌 Code


  1. ArrayList에 add 후 배열로 변환
import java.util.*;
class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        ArrayList<String> arr_list = new ArrayList<>();
        
        for(int i = 0; i < finished.length; i++) {
            if(!finished[i]) {
                arr_list.add(todo_list[i]);
            }
        }
        
        String[] answer = arr_list.toArray(new String[arr_list.size()]);
        return answer;
    }
}
  1. 문자열 사용 후 split
import java.util.*;
class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        String tmp = "";
        for(int i = 0; i < todo_list.length; i++) {
            tmp = finished[i] ? tmp : tmp + todo_list[i] + ",";
        }
        
        return tmp.split(",");
    }
}

0개의 댓글