K 번째 수[swift]

김형준·2023년 6월 1일
0

코딩문제

목록 보기
3/9

문제해결을 위한 문법
-Array[i]: 서브 스크립트 활용
-sort : 특정 element 정렬하기

func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
    // 배열의 [i] 활용 및 특정요소 sort
    
    var result = [Int]()
    var result123 = [Int]()
    
    for i in commands {
        
        var firstRange = i[0] - 1           //2  command[2,5,3]에서 2
        var secondRange = i[1] - 1         //5 command[2,5,3]에서 5
        var thirdRange = i[2] - 1         //3  command[2,5,3]에서 3
        
        var range = array[firstRange...secondRange].sorted(by: <) 
        //array의 range 설정 후 정렬
        
        result.append(range[thirdRange]) 
        //최종 result에 정답 넣기
        
        result123.append(array[i[0]-1...i[1]-1].sorted()[i[2]-1])
        //이렇게 한번에 가능
    }
    
    return result123
}
solution([1, 5, 2, 6, 3, 7, 4], [[2, 5, 3], [4, 4, 1], [1, 7, 3]])
고차함수 활용정답
func solution1(_ array:[Int], _ commands:[[Int]]) -> [Int] {
    return commands.map({(key) in
        array[(key[0]-1)...(key[1]-1)].sorted()[key[2]-1]})
}
--------------------------------------------------------------
.sorted()[key[2]-1] 처럼 특정 뽑아서 sorted 할 수 있음

var exm : [Int] = [1,4,5,6,7,8]

exm.sorted()[2] // 5가 출력됨.
profile
기억보단 기록, 느리더라도 꾸준히

0개의 댓글