반응형
제일 작은 수 제거하기
문제 설명
정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.
단, 리턴하려는 배열이 빈 배열일 경우 배열에 -1을 넣어 리턴하세요.
제한 조건
- arr은 길이 1 이상인 배열
- 인덱스 i,j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 이다.
func solution(_ arr:[Int]) -> [Int] {
var arr = arr
arr.remove(at: arr.firstIndex(of: arr.min()!)!)
return arr.isEmpty ? [-1] : arr
}
다른 사람의 풀이 보면 'index(of:)' 함수를 많이 썼던데, 현재는 deprecated 되었다고 한다.
대신에 'firstIndex(of:)'를 써주는 것이 좋을듯!
firstIndex(of:)
: Returns the first index where the specified value appears in the collection.
func firstIndex(of element: Int) -> Int?
배열에서 해당 항목을 찾으면 처음으로 찾은 해당 항목의 index를 반환하고, 만약 해당 항목을 찾지 못하면 nil을 반환하는 함수.
func solution(_ arr:[Int]) -> [Int] {
let min = arr.sorted(by: <)[0]
return arr.count == 1 ? [-1] : arr.compactMap({ return $0 != min ? $0 : nil })
}
728x90
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Swift 알고리즘] Programmers x만큼 간격이 있는 n개의 숫자 (0) | 2022.01.08 |
---|---|
[Swift 문자열] Programmers 핸드폰 번호 가리기 (0) | 2022.01.07 |
[Swift 알고리즘] Programmers 기초 문제들 (0) | 2022.01.04 |
[Swift 알고리즘] Programmers 문자열 다루기 기본 (0) | 2021.04.10 |
[Swift 알고리즘] Programmers 가운데 글자 가져오기 (0) | 2021.04.09 |