문제
내 정답 코드
import Foundation
func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
var result:[Int] = []
for queries in queries {
let s = queries[0]
let e = queries[1]
let k = queries[2]
let arr = arr[s...e].filter{ $0 > k }
if arr.count == 0 {
result.append(-1)
} else {
result.append(arr.min()!)
}
}
return result
}
#
1. filter를 통해 k보다 큰 수를 걸러내고
2. min함수를 통해 최소 값을 가져와 배열에 추가한다.
3. filter로 거른 배열의 count가 0일 경우 -1을 추가한다.
위 코드를 좀 더 간단하게 짜보았다.
import Foundation
func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
var result:[Int] = []
for queries in queries {
let (s, e, k) = (queries[0], queries[1], queries[2])
let min = arr[s...e].filter{ $0 > k }.min()
result.append(min ?? -1)
}
return result
}
배운 기술
1. min()
https://developer.apple.com/documentation/swift/set/min()
2. max()
'프로그래머스 (Swift) > 기초' 카테고리의 다른 글
[Day7-2] 배열 만들기 2 (0) | 2024.02.17 |
---|---|
[Day7-1] 수열과 구간 쿼리4 (0) | 2024.02.15 |
[Day6-4] 수열과 구간 쿼리 3 (0) | 2024.02.09 |
[Day6-3] 수 조작하기2 (0) | 2024.02.09 |
[Day6-2] 수 조작하기1 (0) | 2024.02.09 |