프로그래머스 1단계) 제일 작은 수 제거하기
2021. 12. 3. 14:05ㆍAlgorithm/알고리즘
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
반응형
'Algorithm > 알고리즘' 카테고리의 다른 글
프로그래머스 1단계) 정수 내림차순으로 배치하기 (0) | 2021.12.05 |
---|---|
프로그래머스 1단계) 정수 제곱근 판별 (0) | 2021.12.03 |
프로그래머스 1단계) 최대공약수와 최소공배수 (0) | 2021.12.03 |
프로그래머스 1단계) 콜라츠추측 (0) | 2021.12.02 |
프로그래머스 1단계) 평균구하기 (0) | 2021.12.02 |