Programmers/Lv. 0 (完)

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

chattymin 2023. 7. 11. 16:37
728x90
반응형

n 번째 원소부터

class Solution {
    fun solution(num_list: IntArray, n: Int): IntArray = num_list.sliceArray(n-1 .. num_list.lastIndex)
}

 

 

순서 바꾸기

class Solution {
    fun solution(num_list: IntArray, n: Int): IntArray = num_list.sliceArray(n .. num_list.lastIndex) + num_list.sliceArray(0 until  n)
}

 

 

왼쪽 오른쪽

class Solution {
    fun solution(str_list: Array<String>): Array<String> {
        var answer: Array<String> = arrayOf<String>()

        val lIndex = str_list.indexOf("l")
        var rIndex = str_list.indexOf("r")

        if (rIndex == -1 && lIndex != -1 && lIndex != 0){ // r 안나오고 l나옴 -> l 왼쪽 반환
            answer = str_list.sliceArray(0 until lIndex)
        }else if (rIndex != -1 && lIndex == -1 && rIndex != str_list.lastIndex){ // l 안나오고 r 나옴 -> r 오른쪽 반환
            answer = str_list.sliceArray(rIndex + 1 until str_list.size)
        }else if (rIndex != -1 && rIndex != -1 && rIndex != str_list.lastIndex && lIndex != 0) { // 둘다 나옴 -> 둘중 인덱스가 더 작은걸로 처리
            if (lIndex < rIndex) answer = str_list.sliceArray(0 until lIndex)
            else answer = str_list.sliceArray(rIndex + 1 until str_list.size)
        }
        // 둘다 안나오면 비어있는 arr 반환


        return answer
    }
}

 

 

n 번째 원소까지

class Solution {
    fun solution(num_list: IntArray, n: Int): IntArray = num_list.sliceArray(0 until n)
}

 

 

n개 간격의 원소들

class Solution {
    fun solution(num_list: IntArray, n: Int): IntArray = (0 until num_list.size step n).map { num_list[it] }.toIntArray()
}
728x90
반응형