코딩테스트/프로그래머스

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

블로그 주인장 2023. 8. 6.


📢 문제 출처

  • https://school.programmers.co.kr/learn/courses/30/lessons/181885?language=java

⏰ 문제 설명

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

⏰ 입출력 예시

  • 입출력 예 #1
  • (1) 예제 1번의 todo_list 중에서 "problemsolving"과 "swim"은 마쳤고, "practiceguitar"와 "studygraph"는 아직 마치지 못했으므로 todo_list에서 나온 순서대로 담은 문자열 배열 ["practiceguitar", "studygraph"]를 return 합니다.

⏰ 풀이

import java.util.*;

class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        ArrayList<String> arr = new ArrayList<>();
        for(int i = 0; i<todo_list.length;i++){
            if(finished[i]==false){
                arr.add(todo_list[i]);
            }            
        }

        String[] answer = new String[arr.size()];
        for (int i = 0; i < answer.length; i++) {
            answer[i] = arr.get(i);
        }
        return answer;
    }
}
  • finished라는 boolean 변수를 가지고 true,false 일 때 각 조건에 맞게 진행해야한다.
  • ArrayList 함수를 이용해서 해당 문제를 풀었는데 List 사용 시에 import java.util.*;  선언하여 진행한다.
  • todo_list의 배열의 갯수에 따라 반복하여 해당 문자열에 맞게 Flag가 true이면 arr에 add 시킨다.
  • String[] 으로 리턴을 해야하기 때문에 String[] answer를 새로 선언하여 answer.length 만큼 arr.get하여 대입한다
반응형

댓글