할 일 목록
문제 설명
오늘 해야 할 일이 담긴 문자열 배열 todo_list
각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때,
todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 ≤ todo_list의 길이 1 ≤ 10
- 2 ≤ todo_list의 원소의 길이 ≤ 20
- todo_list의 원소는 영소문자로만 이루어져 있습니다.
- todo_list의 원소는 모두 서로 다릅니다.
- finished[i]는 true 또는 false이고 true는 todo_list[i]를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다.
- 아직 마치지 못한 일이 적어도 하나 있습니다.
입출력 예
입출력 예 설명
입출력 예 #1
예제 1번의 todo_list 중에서 "problemsolving"과 "swim"은 마쳤고, "practiceguitar"와 "studygraph"는 아직 마치지 못했으므로 todo_list에서 나온 순서대로 담은 문자열 배열 ["practiceguitar", "studygraph"]를 return 합니다.
코드
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
String[] answer = {};
return answer;
}
}
풀이
import java.util.*;
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
// todo_list: 해야 할일 배열
// finished: 상태 배열
// 결과를 저장할 리스트.
List<String> answerList = new ArrayList<>();
// 모든 할 일에 대해 반복
for (int i = 0; i < todo_list.length; i++) {
if (!finished[i]) {
answerList.add(todo_list[i]);
}
}
// 리스트를 배열로 변환
String[] answer = new String[answerList.size()];
// toArray 메서드 : 기존 배열을 사용하여 변환, 그 결과를 answer에 저장
answer = answerList.toArray(answer);
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/181885