class Solution {
fun solution(arr: IntArray, intervals: Array<IntArray>): IntArray {
val result = mutableListOf<Int>()
for ((first, second) in intervals) {
result.addAll(arr.sliceArray(first..second).toList())
}
return result.toIntArray()
}
}
class Solution {
fun solution(arr: IntArray, intervals: Array<IntArray>): List<Int> {
return intervals.flatMap { ints -> arr.sliceArray(IntRange(ints[0], ints[1])).toList() }
}
}
flatMap
val nestedList = listOf(listOf(1, 2), listOf(3, 4))
val flatList = nestedList.flatMap { it }
println(flatList) // 출력: [1, 2, 3, 4]
sliceArray
val arr = intArrayOf(1, 2, 3, 4, 5)
val sliced = arr.sliceArray(1..3) // [2, 3, 4]
println(sliced.joinToString()) // 출력: 2, 3, 4
IntRange(start, endInclusive)
ntRange는 정수 범위를 표현하는 클래스입니다. start..end와 같이 범위를 생성하며, step 값을 추가해 범위를 커스터마이즈할 수도 있습니다.
포함 범위: IntRange는 start부터 endInclusive까지 포함합니다. 즉, 끝값(endInclusive)도 범위에 포함됩니다.
표현식: 1..5는 IntRange(1, 5)와 동일한 표현입니다
사용 용도: 배열이나 리스트의 일부를 처리하거나 루프 범위를 지정할 때 자주 사용됩니다.
val range = IntRange(1, 5)
println(range.toList()) // 출력: [1, 2, 3, 4, 5]
for (i in IntRange(3, 7)) {
println(i) // 출력: 3, 4, 5, 6, 7
}