프로그래머스에 있는 정렬에 있는 K번째수 문제 입니다.
소스를 먼저 첨부하고 분석 해보도록 하겠습니다.
func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
var resultArray : [Int] = []
for i in 0..<commands.count {
var result = Array<Int>()
for number in commands[i][0]-1..<commands[i][1] {
result.append(array[number])
result.sort()
}
resultArray.append(result[commands[i][2]-1])
}
return resultArray
}
문제 키포인트 입니다.
예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면
1. array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
2. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.
3. 2에서 나온 배열의 3번째 숫자는 5입니다.
다음과 같은 예시를 만들기 위해 commands 를 돌리고
commands [0] = i
commands [1] = j
commands [2] =k
같은 형태를 보여주고 있습니다. 해당 commands 값을 for문을 통해 돌립니다
나온값을 빈 배열값에 추가하고 정렬해줍니다.
정렬후 commands 3번째 값을 새 배열에 추가해줍니다.
https://programmers.co.kr/learn/courses/30/lessons/42748#
'Algorithm' 카테고리의 다른 글
Algorithm(Swift) - 부족한 금액 계산하기 (0) | 2021.09.12 |
---|---|
Algorithm(Swift) - H-Index (0) | 2021.08.28 |
Algorithm(Swift) - 가장 큰 수 (0) | 2021.08.27 |
Algorithm(Swift) - 모의고사 (0) | 2021.08.27 |
Algorithm(Swift) - 두 개 뽑아서 더하기 (0) | 2021.07.18 |