할 일 목록

nacSeo (낙서)·2024년 2월 18일
0

프로그래머스

목록 보기
82/169

문제 설명

오늘 해야 할 일이 담긴 문자열 배열 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는 아직 마치지 못했음을 나타냅니다.
아직 마치지 못한 일이 적어도 하나 있습니다.

나의 코드

import java.util.List;
import java.util.ArrayList;

class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        List<String> list = new ArrayList<>();
        for(int i=0; i<finished.length; i++) {
            if(finished[i]==false) {
                list.add(todo_list[i]);
            }
        }
        String[] answer = new String[list.size()];
        for(int j=0; j<list.size(); j++) {
            answer[j] = list.get(j);
        }
        return answer;
    }
}

다른 사람 코드

class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        String str = "";
        for(int i=0; i<finished.length; i++){
            str = finished[i]==false ? str+todo_list[i]+"," : str;
        }

        return str.split(",");
    }
}

느낀 점

늘 하던 방식대로 문제를 해결했는데 다른 사람 코드들을 살펴 보다 극찬받는 코드가 있어 가져와봤다. 가독성도 나쁘지 않고 엄청 효율적인 방법이라 느껴졌다. 저런 컴퓨팅 사고를 할 수 있는 레벨이 나한테도 오겠지..? 부단히 노력해보자

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글