극동대학교\AI컴퓨터공학과\JAVA/프로그래머스 코딩 기초 트레이닝

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

sundori 2023. 9. 6. 22:54

목차

    #1 할 일 목록

    문제 설명

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

    제한사항

    • 1 ≤ todo_list의 길이 1 ≤ 100
    • 2 ≤ todo_list의 원소의 길이 ≤ 20
      • todo_list의 원소는 영소문자로만 이루어져 있습니다.
      • todo_list의 원소는 모두 서로 다릅니다.
    • finished [i]는 true 또는 false이고 true는 todo_list[i]를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다.
    • 아직 마치지 못한 일이 적어도 하나 있습니다.

    입출력 예

    todo_list finished result
    ["problemsolving", "practiceguitar", "swim", "studygraph"] [true, false, true, false] ["practiceguitar", "studygraph"]

    #2 알고리즘 및 코드

    import java.util.ArrayList;
    import java.util.List;
    class Solution {
        public String[] solution(String[] todo_list, boolean[] finished) {
            List<String> stringList = new ArrayList<>();
            for(int i = 0; i < finished.length; i++){
                if(finished[i] == false){
                    stringList.add(todo_list[i]);
                }
            }
            return stringList.toArray(new String[0]);
        }
    }
    --------------------------------------
    정확성  테스트
    테스트 1 〉	통과 (0.03ms, 73MB)
    테스트 2 〉	통과 (0.04ms, 78.3MB)
    테스트 3 〉	통과 (0.03ms, 71.1MB)
    테스트 4 〉	통과 (0.05ms, 75.8MB)
    테스트 5 〉	통과 (0.04ms, 74.3MB)
    테스트 6 〉	통과 (0.04ms, 87.6MB)
    테스트 7 〉	통과 (0.04ms, 74.3MB)
    테스트 8 〉	통과 (0.05ms, 76.9MB)
    테스트 9 〉	통과 (0.06ms, 84.7MB)
    테스트 10 〉	통과 (0.03ms, 74.6MB)
    • for 문을 이용하여 finished의 길이만큼 반복하며, 조건에는 각 배열의 원소 값이 false인 경우에만 stringList에 받는 것이다.