Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
반응형
Archives
Today
Total
관리 메뉴

슈프림 블로그

[프로그래머스] 정렬 - K번째수 (Swift 풀이) 본문

코딩테스트

[프로그래머스] 정렬 - K번째수 (Swift 풀이)

_슈프림 2020. 9. 20. 22:41
728x90

문제에서 요구하는 그대로 풀어내면 되는 간단한 문제다.

먼저 2차원 배열 commands에는 [i,j,k]가 여러개 담겨있는 구조다.

i와 j로는 부분 배열을 만들면 되고, k로는 정렬된 부분배열에서 값을 꺼내오면 된다.

 

반복문을 돌면서 i,j,k 값의 묶음을 꺼내자.

for command in commands

 

사용하기 편리하도록 변수 i,j,k에 값을 저장해주자.

여기서 -1을 다 뺀 이유는??

문제에서는 i번째, j번째, k번째라는 표현을 했는데, 배열 인덱스는 0부터 시작하므로 배열에 접근하기 위해서는 -1을 해줘야 한다.

let i = command[0]-1
let j = command[1]-1
let k = command[2]-1 

 

부분배열을 만들고, 정렬해주자.

let sorted = array[i...j].sorted()

 

정렬된 배열의 k번째 값을 answer 배열에 추가하자.

answer.append(sorted[k])

 

 

완성된 코드

func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
    var answer = [Int]()
    for command in commands {
        let i = command[0]-1
        let j = command[1]-1
        let k = command[2]-1
        let sorted = array[i...j].sorted()
        answer.append(sorted[k])
    }
    return answer
}
반응형
Comments