K번째수

HJ Kwon·2021년 12월 20일
0
  • 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)}

0개의 댓글