내 풀이
func solution(_ arr:[Int]) -> [Int] {
if arr.count == 1 {
return [-1]
}
var min = arr.min()!
var answer = arr.filter{$0 > min}
return answer
}
- 주어진 배열 arr의 길이가 1인 경우에 대한 예외 처리 수행
만약 arr의 길이가 1이라면 배열에 -1을 채워서 반환
- 배열 arr의 길이가 1이 아닐 경우, 배열 arr에서 min() 함수를 사용해 가장 작은 값을 찾기.
- 여기서 arr.min()은 배열에서 가장 작은 값을 리턴하며, 옵셔널 타입이므로 강제 언래핑(!)을 통해 실제 값에 접근
- 배열 arr에서 가장 작은 수를 제거하기 위해 filter 메서드 사용
- filter 메서드는 조건을 만족하는 요소만을 걸러내어 새로운 배열로 반환
주어진 배열 arr에서 가장 작은 수보다 큰 수만을 남기고 새로운 배열 생성
- 필터링된 배열 반환
위 코드로도 정답 처리가 되었지만 뭔가 아쉬워 예외처리 부분을 수정 배열이 비어있는 경우를 추가해보았다.
func solution(_ arr: [Int]) -> [Int] {
// 배열이 비어 있는 경우
guard !arr.isEmpty else {
return [-1]
}
// 배열이 하나의 요소만을 가지고 있는 경우
guard arr.count > 1 else {
return [-1]
}
// 배열에서 최소값 찾기
let minVal = arr.min()!
// 최소값을 제외한 새로운 배열 생성
let result = arr.filter { $0 != minVal }
return result
}
min()함수란?
배열의 요소 중 가장 작은 값을 반환
배열이 비어있을 경우에는 nil을 반환하며, 반환 타입은 옵셔널
예를 들어, [3, 1, 4, 2]라는 배열이 주어졌을 때, min() 함수 호출 시 1이 반환
filter메서드란?
배열의 각 요소에 대해 주어진 조건을 만족하는 요소들로 이루어진 새로운 배열 반환
클로저를 인자로 받으며, 클로저의 반환값이 true인 경우에만 해당 요소가 결과 배열에 포함
예시
짝수만을 걸러내는 코드
let arr = [1, 2, 3, 4, 5]
let evenNumbers = arr.filter { $0 % 2 == 0 }
// 결과: [2, 4]
' 𝗔𝗣𝗣𝗟𝗘 > ALGORITHM' 카테고리의 다른 글
[내일배움캠프] 데일리 루틴(iOS_3회차) - 수박수박수박수박수박수? (0) | 2024.02.16 |
---|---|
[내일배움캠프] 데일리 루틴(iOS_3회차) - 가운데 글자 가져오기 (1) | 2024.02.14 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 없는 숫자 더하기 (0) | 2024.02.12 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 핸드폰 번호 가리기 (0) | 2024.02.11 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 음양 더하기 (0) | 2024.02.09 |