Programmers/Lv. 0 (完)

[Kotlin] Programmers 코딩 기초 트레이닝 Day 19 문자열, 리스트(배열)

chattymin 2023. 7. 17. 15:23
728x90
반응형

세 개의 구분자

class Solution {
    fun solution(myStr: String): Array<String> = myStr
    	.split(Regex("[abc]"))
    	.filterNot { it.isEmpty() }
    	.ifEmpty { listOf("EMPTY") }
        .toTypedArray()
}

 

 

배열의 원소만큼 추가하기

class Solution {
    fun solution(arr: IntArray): IntArray {
        var result = intArrayOf()

        arr.map { num ->
            repeat(num){
                result = result.plus(num)
            }
        }
        return result
    }
}

 

 

빈 배열에 추가, 삭제하기

import java.util.Stack
class Solution {
    fun solution(arr: IntArray, flag: BooleanArray): IntArray {
        var result = Stack<Int>()
        for (i in 0 until arr.size){
            if (flag[i]){
                repeat(arr[i] * 2){
                    result.push(arr[i])
                }
            }else{
                repeat(arr[i]){
                    result.pop()
                }
            }
        }

        return result.toIntArray()
    }
}

 

 

배열 만들기 6

class Solution {
    fun solution(arr: IntArray): IntArray {
        var stk: IntArray = intArrayOf()
        var i = 0

        while (i < arr.size){
            if (stk.isEmpty()) stk = stk.plus(arr[i])
            else if (stk.last() == arr[i]) stk = stk.sliceArray(0 until stk.lastIndex)
            else if (stk.last() != arr[i]) stk = stk.plus(arr[i])
            i++
        }
        if (stk.isEmpty()) stk = stk.plus(-1)

        return stk
    }
}

 

 

무작위로 K개의 수 뽑기

class Solution {
    fun solution(arr: IntArray, k: Int): IntArray {
        var answer: IntArray = arr.distinct().toIntArray()

        if (answer.size < k){
            repeat(k - answer.size){
                answer = answer.plus(-1)
            }
        }

        return answer.sliceArray(0 until k)
    }
}
728x90
반응형