commands를 for 문을 돌면서 각 command에 대해서
array의 command[0] 번째 ~ command[1]까지 slice 한 후 오름차순 정렬한다.
그 후, command[2] 번째 값을 결과 리스트에 추가하여 반환한다.
def solution(array, commands):
return [sorted(array[c[0]-1:c[1]])[c[2]-1] for c in commands]
fun solution(array: IntArray, commands: Array<IntArray>): IntArray {
val answer = mutableListOf<Int>()
for (c in commands) {
answer.add(array.filterIndexed { idx, _ ->
c[0] - 1 <= idx && idx < c[1]
}.sorted()[c[2] - 1])
}
return answer.toIntArray()
}
python
의 리스트 슬라이싱 같은 기능이 있다.// asis
for (c in commands) {
answer.add(array.filterIndexed { idx, _ ->
c[0] - 1 <= idx && idx < c[1]
}.sorted()[c[2] - 1])
}
// tobe
answer.add(array.slice(IntRange(c[0] - 1, c[1] - 1)).sorted()[c[2] - 1])
IntRange(1,3)
== 1..3