class Solution {
fun solution(arr: IntArray, query: IntArray): IntArray {
var tempArr = arr
query.forEachIndexed{idx, value ->
tempArr = if(idx % 2 ==0){
tempArr.take(value + 1).toIntArray()
}else{
tempArr.drop(value).toIntArray()
}
}
return tempArr
}
}
class Solution {
fun solution(arr: IntArray, query: IntArray) = query.indices
.fold(0 to 0) { (s, e), i -> if (i % 2 == 1) s + query[i] to e else s to s + query[i] }
.let { (s, e) -> if (s == e) intArrayOf(-1) else arr.copyOfRange(s, e) }
}
take(n)
val arr = listOf(1, 2, 3, 4, 5)
println(arr.take(3)) // [1, 2, 3]
drop(n)
val arr = listOf(1, 2, 3, 4, 5)
println(arr.drop(2)) // [3, 4, 5]
fold(initial, operation)
val result = listOf(1, 2, 3).fold(0) { acc, value -> acc + value }
println(result) // 6
copyOfRange(startIndex, endIndex)
배열에서 startIndex부터 endIndex 직전까지의 요소를 복사.
반환 타입: 배열과 동일한 타입
val arr = intArrayOf(1, 2, 3, 4, 5)
val subArray = arr.copyOfRange(1, 4)
println(subArray.joinToString()) // 2, 3, 4
indices
val arr = listOf(10, 20, 30)
println(arr.indices) // 0..2
val result = listOf(1, 2, 3).let { it.sum() }
println(result) // 6