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_listfinishedresult
["problemsolving", "practiceguitar", "swim", "studygraph"] | [true, false, true, false] | ["practiceguitar", "studygraph"] |
입출력 예 설명
입출력 예 #1
- 예제 1번의 todo_list 중에서 "problemsolving"과 "swim"은 마쳤고, "practiceguitar"와 "studygraph"는 아직 마치지 못했으므로 todo_list에서 나온 순서대로 담은 문자열 배열 ["practiceguitar", "studygraph"]를 return 합니다.
<정답>
function solution(todo_list, finished) {
let check = {}
let result = [];
todo_list.forEach((x,i)=>{
check[x] = finished[i]
if(check[x] == false){
result.push(x)
}
})
return result
}
여기서 return에 check를 출력해보면 이런 객체가 출력된다.
{"problemsolving":true,"practiceguitar":false,"swim":true,"studygraph":false}
짝을 지어서 원하는 키와, 값들을 짝지어서 조절할 수 있는 것.
물론 더 짧게 줄일 수는 있을 것이다. 하지만 객체 연습을 위한 시간으로 사용했다.
'🗃️javascript' 카테고리의 다른 글
제로초 리액트(1)[리액트 기본기 쌓기] (0) | 2024.07.10 |
---|---|
순서 바꾸기(js, Lv.0)[splice와 인터프리터로 pop, push없이 순환시키기] (1) | 2024.07.10 |
A 강조하기(js, Lv.0)[ map은 원본 배열을 수정하지 않고 새로운 배열을 반환] (0) | 2024.07.10 |
전화번호 목록(js, Lv.2)[startWith()] (0) | 2024.07.09 |
[1차] 뉴스 클러스터링(js, Lv.2) (0) | 2024.07.08 |