포스트

30. 수열과 구간 쿼리 2 (fin)

나의 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import Foundation

func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
    
    var answer : [Int] = []
    var Arr : [Int] = []
    
    //print(queries.count)
    
    for i in 0 ... queries.count-1 {
        answer.append(arr[queries[i][0] ... queries[i][1]].filter { 
            element in guard element > queries[i][2] else { 
                return false }
                 return true }.min() ?? -1)}

    
    return answer
    
}

예외조건에서 잘 안되어서 결국 이것저것 검색하면서 해결하였다.

다른 코드들을 보니 optional chaining을 통해서 푼것같은데.

이글을 적고 바로 정리를 해야겠다.

다른코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import Foundation

func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
    return queries.map { 
        let (s, e, k) = ($0[0], $0[1], $0[2])
        return Array(arr[s...e]).filter { $0 > k }.min() ?? -1
    }
}

//
func solution(_ arr: [Int], _ queries: [[Int]]) -> [Int] {
    return queries.map { q in
        let min = arr[q[0]...q[1]].filter { $0 > q[2] }.min() ?? -1
        return min == Int.max ? -1 : min
    }
}

//
import Foundation

func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
    return queries.map { element in
        arr[element[0]...element[1]].filter { $0 > element[2] }.min() ?? -1
    }
}

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.