[programmers]level 1-区切り数値配列(lang:swift)


問題の説明
arrayの各要素で、昇順で配列された配列の係数で区切られた値を返す関数を作成します.
要素が除数で区切られていない場合は、配列に-1を入れて返します.
せいげんじょうけん
arrは自然数を含む配列である.
整数i,jの場合、i≠jの場合、arr[i]≠arr[j]となる.
除数は自然数です.
arrayは長さが1より大きい配列です.
I/O例
arr	divisor	return
[5, 9, 7, 10]	5	[5, 10]
[2, 36, 1, 3]	1	[1, 2, 3, 36]
[3,2,6]	10	[-1]
I/O例説明
I/O例#1
arrの5つの要素のうち5つは5と10です.したがって、[5,10]を返します.
I/O例#2
arrのすべての要素は1で区切られています.元素を昇順に並べて[1,2,3,36]を返します.
I/O例#3
3、2、6は10に分けられない.[1]を返します.分離された要素がないためです.
================================================
私が書いたコードは以下の通りです.
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
    
    let tempList: [Int] = arr.map{
        if $0 % divisor == 0 {
            return $0
        }
        return 0
    }.filter{$0>0}.sorted()
    
    if tempList.isEmpty {
        return [-1]
    }
    
    return tempList
}
他の人の解答を見た後にただフィルターだけを使うことを発見します...
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
    let array = arr.sorted().filter{ $0 % divisor == 0 }
    return  array == [] ? [-1] : array
}