티스토리 뷰

코딩테스트

Lv.0 swift 할 일 목록

알롱도담쓰 2024. 3. 21. 22:29

문제 설명

오늘 해야 할 일이 담긴 문자열 배열 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 Foundation

func solution(_ todo_list:[String], _ finished:[Bool]) -> [String] {
    return todo_list.enumerated().filter { !finished[$0.offset] }.map { $0.element }
}

접근 방법

 

다른 풀이

func solution(_ todoList: [String], _ finished: [Bool]) -> [String] {
    return zip(todoList, finished).filter { !$0.1 }.map { $0.0 }
}
func solution(_ todo_list:[String], _ finished:[Bool]) -> [String] {
    zip(todo_list, finished).compactMap { $0.1 ? nil : $0.0 }
}

알게 된 것

zip()

'코딩테스트' 카테고리의 다른 글

Lv.0 부분 문자열 이어 붙여 문자열 만들기  (0) 2024.03.22
Lv.0 swift 0 떼기  (1) 2024.03.22
Lv.0 swift 홀수 vs 짝수  (0) 2024.03.21
Lv.0 swift 순서 바꾸기  (0) 2024.03.21
Lv.0 swift n개 간격의 원소들  (0) 2024.03.20
최근에 올라온 글