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

J·2023년 6월 4일
0

programmers

목록 보기
8/33
post-thumbnail

문제 링크

할 일 목록


문제 설명

오늘 해야 할 일이 담긴 문자열 배열 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_listfinishedresult
["problemsolving", "practiceguitar", "swim", "studygraph"][true, false, true, false]["practiceguitar", "studygraph"]

입출력 예 설명

입출력 예 #1

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

풀이

  1. filter 메서드를 이용해 배열 걸러낼 것임.
  2. 걸러내는 조건은 todo_list의 인덱스 값과 동일한 finished의 인덱스 값이 false인 것.
  3. 필터링된 새로운 배열 반환.

코드

function solution(todo_list, finished) {
    return todo_list.filter((_, index) => !finished[index]);
}

다른 사람의 코드

function solution(todo_list, finished) {
    let answer = [];

    for(let i = 0; i < todo_list.length; i++) {
        if(!finished[i]) {
            answer.push(todo_list[i]);
        }
    }

    return answer;
}

생각

  • map처럼 filter도 3개의 메개변수를 담을 수있음.
profile
벨로그로 이사 중

0개의 댓글

관련 채용 정보