Array<IntArray>
를 이용하여 idx 접근하였다.
- 역시나 함수형으로 풀 수 있는 문제였다.
fun solution(array: IntArray, commands: Array<IntArray>): IntArray {
var mCommandsNum = commands.size
var answer = IntArray(mCommandsNum){0}
for (i in 0 until mCommandsNum) {
var mCopiedArr = array.copyOfRange(commands[i][0] - 1, commands[i][1])
mCopiedArr.sort()
answer[i] = mCopiedArr[commands[i][2] - 1]
}
return answer
}
- 함수형 풀이는 다음과 같다.
- map 함수를 이용한다. (Collection transformation operations: map)
fun solution(array: IntArray, commands: Array<IntArray>): IntArray {
return commands.map { command ->
array.slice((command[0] - 1 until command[1])).sorted()[command[2] - 1]
}.toIntArray()
}
- 또한 문제를 풀면서 N차원 배열에 대해 다시 익혔다
var arr1 = Array<Array<Int>>(row,{Array<Int>(col,{i->1})})
var arr2 = Array<IntArray>(3, {IntArray(3)})
var arr3 = arrayOf(arrayOf(1,2,3), arrayOf(4,5,6))
var arr4 = Array<Array<Int>>(5){ arrayOf(1,2)}