Programmers/Lv. 0 (完)

[Kotlin] Programmers 코딩 기초 트레이닝 Day 12 리스트(배열)

chattymin 2023. 7. 10. 13:06
728x90
반응형

리스트 자르기

class Solution {
    fun solution(n: Int, slicer: IntArray, num_list: IntArray): IntArray = 
    when(n){
        1 -> num_list.slice(0 .. slicer[1]).toIntArray()
        2 -> num_list.slice(slicer[0] until num_list.size).toIntArray()
        3 -> num_list.slice(slicer[0] .. slicer[1]).toIntArray()
        else -> num_list.slice(slicer[0] .. slicer[1] step slicer[2]).toIntArray()
    }
}

 

 

첫 번째로 나오는 음수

class Solution {
    fun solution(num_list: IntArray): Int = num_list.indexOf(num_list.filter { it < 0 }.firstOrNull()?:-1)
}

 

 

배열 만들기 3

class Solution {
    fun solution(arr: IntArray, intervals: Array<IntArray>): IntArray = intervals.flatMap { (start, end) ->
        arr.slice(start .. end)
    }.toIntArray()
}

 

 

2의 영역

class Solution {
    fun solution(arr: IntArray): IntArray {
        var first = arr.indexOfFirst { it == 2 }
        var end = arr.indexOfLast { it == 2 }

        return if (first == -1) intArrayOf(-1) else arr.slice(first .. end).toIntArray()
    }
}

 

 

배열 조각하기

class Solution {
    fun solution(arr: IntArray, query: IntArray): IntArray {
        var answer: List<Int> = arr.toList()

        for (i in 0 until query.size){
            if (i % 2 == 0)
                answer = answer.slice(0 .. query[i])
            else
                answer = answer.slice(query[i] until  answer.size)
        }

        return answer.toIntArray()
    }
}
728x90
반응형