일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 | 29 | 30 |
Tags
- AnyObject
- Xcode
- MKMapViewDelegate
- Protocol
- 단일 책임원칙
- RunningTimer
- 서체관리자
- 러닝기록앱
- Required Reason API
- font book
- 러닝타이머
- xcode로 날씨앱 만들기
- 영문 개인정보처리방침
- 클로저의 캡슐화
- SwiftUI Boolean 값
- CLLocationManagerDelegate
- swift
- Startign Assignments
- dispatchsource
- weak var
- WeatherManager
- addannotation
- CoreLocation
- App Store Connect
- 한국어 개인정보처리방침
- UICollectionViewFlowLayout
- weatherKit
- Timer
- UIAlertAction
- MKMapItem
Archives
- Today
- Total
VesselWheel
제일 작은 수 제거하기 본문
문제
풀이
func solution(_ arr:[Int]) -> [Int] {
if arr.count == 1 {
return [-1]
}
var min = arr.min()!
var answer = arr.filter{$0 > min}
return answer
}
해석
1. 제일 작은 수를 제거하고나서 빈 배열이면 [-1]을 배출하려면
// 배열의 길이를 count로 길이가 1이라면, 함수는 [-1] 반환하고 종료
if arr.count == 1 {
return [-1]
이어서
// min() 함수를 활용하여 배열에서 가장 작은 원소를 찾고, 그 값을 인스턴스 min에 저장
// min() 함수는 배열의 모든 원소 중 가장 작은 값을 반환
// (!) 느낌표는 강제 추출 연산자로, 반환값이 Optional 타입일 때 사용하여 실제값을 옵셔널 강제 해제하여 배열에서 꺼내어 옴
var min = arr.min()!
// filter 함수는 주어진 클로져{}에 맞는 원소들만 골라 새로운 배열을 만듬
// 클로져{$0 > min} 는 배열 arr의 각 원소가 인스턴스 min 보다 큰지를 검사하며, $0 은 클로저의 첫 번째 인덱스를 나타내는 문법
var answer = arr.filter{$0 > min} // min 인스턴스보다 큰 원소들만 모아 answer 인스턴스에 저장
// 가장 작은 원소를 제거한 결과 배열 answer 반환
return answer
'Coding Test Practice in Swift' 카테고리의 다른 글
제곱근 구하기 (0) | 2023.11.27 |
---|---|
수박수? 반복패턴 만들기 (2) | 2023.11.27 |
없는 숫자 더하기 (2) | 2023.11.23 |
핸드폰 번호 가리기 (0) | 2023.11.23 |
음양 더하기 (0) | 2023.11.22 |