티스토리 뷰
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12935
문제 사진
내 풀이
func solution(_ arr:[Int]) -> [Int] {
guard arr.count > 1 else { return [-1] }
guard let index = arr.firstIndex(of: arr.min()!) else { return [-1] }
var result: [Int] = arr
result.remove(at: index)
return result
}
- 비교할게 없을때 [-1] return
- 최소값 구하기 min() 메서드
- 제일 작은값의 인덱스 구하기
- 구한 인덱스 삭제 remove(at:)
다른사람의 풀이
func solution(_ arr:[Int]) -> [Int] {
let min = arr.sorted(by: <)[0]
return arr.count == 1 ? [-1] : arr.compactMap({ return $0 != min ? $0 : nil })
}
solution([10,3,2,1])
// [10, 3, 2]
- 오름차순에서 첫번째 요소 값 추출 (즉 최솟값을 추출)
- arr 요소 하나씩 비교하면서 min이랑 같지 않은것만 출력
그런데 filter로 쓸 수 있지 않을까?
func solution(_ arr:[Int]) -> [Int] {
let min = arr.sorted(by: <)[0]
return arr.count == 1 ? [-1] : arr.filter { $0 != min }
}
가능하댜 🥹
다만 이유는 모르겠지만 내가 위에 풀었던것 보단 처리속도가 미세하게 느리다..
배운것
sorted(by:)
arr를 부등호에 따라 오름차순, 내림차순으로 정리해줍니다.
근데 ( < , > ) 어떤 방향으로 하면 오름차순이고 , 내림차순인지 헷갈리는 경우가 많은데
여기서 딱 정리 해보겠습니다!
저는 부등호 윗부분을 보고 판단합니다.
부등호 윗부분이 올라가고 있으니,
오름차순
부등호 윗부분이 내려가고 있으니,
내림차순
예제
let students: Set = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
let descendingStudents = students.sorted(by: >)
print(descendingStudents)
// Prints "["Peter", "Kweku", "Kofi", "Akosua", "Abena"]"
728x90
'알고리즘' 카테고리의 다른 글
[Swift 알고리즘] - k의 갯수 (Programmers) (0) | 2022.11.16 |
---|---|
[Swift 알고리즘] - A로 B만들기 (Programmers) (0) | 2022.11.10 |
[Swift 알고리즘] - 진료 순서 정하기 (Programmers) (0) | 2022.11.06 |
[Swift 알고리즘] - 모스부호(1) (Programmers) (0) | 2022.11.04 |
[Swift 알고리즘] - 외계행성의 나이 (Programmers) (0) | 2022.11.01 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Swift ModernRIBs
- Swift Leetcode
- 원티드 프리온보딩
- swift property
- Swift joined
- Swift final
- iOS error
- swift (programmers)
- ios
- Swift 프로퍼티
- RTCCameraVideoCapturer
- Swift joined()
- Swift 내림차순
- Swift inout
- Swift init
- CS 네트워크
- Swift 프로그래머스
- Swift RIBs
- Swift
- Swift 알고리즘
- swift programmers
- swift protocol
- swift 고차함수
- Swift Error Handling
- swift reduce
- 2023년 회고
- Class
- RIBs tutorial
- Combine: Asynchronous Programming with Swift
- removeLast()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함