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 라이센스를 따릅니다.