Algorithm/알고리즘
프로그래머스 1단계) 제일 작은 수 제거하기
bannaviiOS
2021. 12. 3. 14:05
728x90
반응형
문제
첫시도
import Foundation
func solution(_ arr:[Int]) -> [Int] {
var newArr = arr.sorted { return $0 > $1 }
newArr.removeLast()
if newArr.isEmpty {
return [-1]
} else {
return newArr
}
}
13:39-13:58
두번째 시도
func solution(_ arr:[Int]) -> [Int] {
var arr2 = arr
arr2.sorted(by: >)
arr2.remove(at: arr2.endIndex-1)
if arr2.count == 0 {
return [-1]
} else {
return arr2
}
}
결국통과
func solution(_ arr:[Int]) -> [Int] {
var arr = arr
arr.remove(at: arr.firstIndex(of: arr.min()!)!)
return arr.count == 0 ? [-1] : arr
}
유의미한 답안
//Q9.제일 작은 수 제거하기
func solution(_ arr:[Int]) -> [Int] {
var arr = arr
arr.remove(at: arr.firstIndex(of : arr.min()!)!)
return arr.count==0 ? [-1] : arr
}
/*arr에서 가장 작은 수를 제거하고
arr의 인덱스 개수가 0이면 [-1] 아니면 arr 리턴
다른 사람의 풀이
정렬해서 푼 사람도 있었다.
처음엔 간단하게 정렬로 구현할까 나도 생각했었지만
정렬을 하면 프로그래밍 언어에서 자체적으로 지원하는 정렬이
최악의 상황엔 n^2, 평균 n(logn)이기에
배열의 인덱스 개수가 만약 기하급수적으로 커지면 너무 비효울적이다.*/
느낀점
https://0urtrees.tistory.com/175
removeFirst()
removeLast()
isEmpty
[1,3,4,2] -> [3,4,2]
이렇게 나와야하는데
나는 4,3,2..
[1,3,4,2] [1,3,4,2]
정렬을 이용할거라면 오른쪽배열 정렬 오름차순 정렬한다음 가장 왼쪽것을 왼쪽배열에서 지운것을 리턴....
728x90
반응형