카테고리 없음
[Swift] Lv.1 제일 작은 수 제거하기
iOSDEv
2024. 3. 2. 10:16
제일 작은 수 제거하기
문제

나의 풀이
func solution(_ arr:[Int]) -> [Int] {
if arr.count == 1 { return [-1] }
var result = arr.sorted(by: <)[0]
return arr.filter { $0 > result }
}
다른 사람의 풀이
func solution(_ arr:[Int]) -> [Int] {
let minArr = arr.sorted().first
return arr.count == 1 ? [-1] : arr.compactMap({ return $0 != minArr ? $0 : nil })
}
제일 작은 수를 변수에 저장하고
배열의 수가 1이면 [-1]의 배열을 반환하고 배열의 길이가 1보다 큰 배열일 때 compact고차함수를 사용하여 작은수와 다른것만 반환하고
아닌 경우엔 nil로 반환시킨다
nil로 반환하는 이유는?
compactmap은 기본적으로 nil이 있는 배열은 제거해서 반환해주기 때문이다
func solution(_ arr:[Int]) -> [Int] {
var answer = arr
//제일 작은 값을 찾아서 제거함
answer.remove(at:
answer.index(of:answer.sorted { $0 < $1 }[0])!) // 정렬된 배열에서 제일 작은 값의 인덱스를 찾음
return answer.isEmpty ? [-1] : answer
}
배열의에 인덱스를 제거한다
// 주어진 정수 배열을 처리하는 함수
func solution(_ arr: [Int]) -> [Int] {
// 1. 배열의 길이가 1인 경우, 최소값을 찾을 수 없으므로 [-1]을 반환
if arr.count == 1 {
return [-1]
}
// 2. 배열 내 최솟값을 찾아 변수에 저장 (강제 언래핑을 통해 값이 항상 존재한다고 가정)
var min = arr.min()!
// 3. 최솟값보다 큰 원소들로 이루어진 새로운 배열 생성
var answer = arr.filter { $0 > min }
// 4. 최종적으로 새로운 배열 반환
return answer
}
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr