일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- format형식
- UserDefaults
- Java
- segue
- Kotlin
- android
- 코딩테스트
- Appearance변경
- snapkit
- cocoapods
- NotificationCenter
- autolayout
- swiftUI
- AsyncImage
- pod install
- UIStackView
- SWIFT
- EventKit
- ViewModifier
- ios
- CoreLocation
- image
- 백준
- SwiftUI_Preview_Provider
- ios15
- Alert
- alamofire
- MapKit
- kakaomap
- programmers
Archives
- Today
- Total
감자주먹밥
[프로그래머스] K번째 수 (swift) 본문
728x90
문제
코드
func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
var answer: [Int] = []
for index in 0..<commands.count{
let first = commands[index][0] - 1
let second = commands[index][1] - 1
let third = commands[index][2] - 1
var temp: [Int] = Array(array[first...second]) // 그냥 슬라이싱을 하면 ArraySlice<int> 타입으로 들어온다.
temp.sort()
answer.append(temp[third])
}
return answer
}
문제해결
위에 주석으로도 써 놨지만 그냥 슬라이싱을 해서 넣어주니 인덱스로 접근하는게 이상했었다.
자료형을 명시하고 보니까 배열을 슬라이싱 하면 Array로 나오는게 아닌 ArraySlice로 나오더라..
이 부분은 기억해야겠다.
map사용하면 더 짧다.
commands.map { (key) in
return array[(key[0]-1)...(key[1]-1)].sorted()[(key[2]-1)]
}
간단하다... 앞으로 맵을 사용해 볼 생각을 해야겠다.
- sort() / sorted() 의 차이점sorted() : 정렬을 하여 반환한다.
- sort() : 내부에서 정렬이 된다.
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 체육복 (swift) (0) | 2021.12.18 |
---|---|
[프로그래머스] 프린터 (swift) (0) | 2021.12.18 |
[프로그래머스] 기능개발 (swift) (0) | 2021.12.18 |
[프로그래머스] H-Index (swift) (0) | 2021.12.18 |
[프로그래머스] 가장 큰 수 (swift) (0) | 2021.12.18 |
Comments