[Swift][프로그래머스] 나누어 떨어지는 숫자 배열 (feat.고차함수 filter)

팔랑이·2024년 4월 5일
1

iOS/Swift

목록 보기
11/71
post-thumbnail

💻 프로그래머스: 나누어 떨어지는 숫자 배열 - 문제 링크


👇🏻 기존 풀이

func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
    var newarr: [Int] = []
    for i in arr {
        if i % divisor == 0 {
            newarr.append(i)
        }
    }
    return newarr.count == 0 ? [-1] : newarr.sorted(by:<)
}

답이 맞긴 하지만, 다른 사람의 풀이를 보니 filter 메서드를 사용하여 해결했기에 이번엔 filter에 대해 공부해보려고 한다.

filter 메서드

filter는 Swift의 컬렉션(배열, 집합, 딕셔너리)에서 특정 조건을 만족하는 요소만 선택하여 새로운 컬렉션을 생성하는 함수이다.

매개변수를 클로저로 받아 새 배열 포함 여부를 검사하고, 이 클로저는 true와 false를 반환한다.

👇🏻 filter를 사용한 풀이

func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
    var newarr = arr.filter {$0 % divisor == 0}
    return newarr.count == 0 ? [-1] : newarr.sorted(by:<)
}

위 풀이에서 for in 문으로 검사하는 부분을 filter로 바꾼 코드이다.

profile
정체되지 않는 성장

0개의 댓글