🔥 CodingTest/프로그래머스
[Lv.0] 할 일 목록
김_수댕
2024. 4. 20. 16:12
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181885
✅ 문제
오늘 해야 할 일이 담긴 문자열 배열 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"] |
🔎 풀이 방법
- for문을 사용해서 todo_list와 finished 배열의 값을 비교한다.
- index가 동일한 배열 값을 비교하면서 finished가 false인 값들을 result에 담는다.
더 간결하게 구할 수 있는 방법은 없을까?
filter를 사용해서 구현 할 수 있을 것 같은데...
💻 코드
function solution(todo_list, finished) {
var answer = [];
for(let i = 0; i < todo_list.length; i++) {
if(!finished[i]) {
answer.push(todo_list[i]);
}
}
return answer;
}
👀 추가 공부
filter() 사용한 코드
function solution(todo_list, finished) {
var answer = [];
return todo_list.filter((e,i) => !finished[i]);
}
반응형