class Solution {
fun solution(strList: Array<String>): Array<String> {
// "l"과 "r"의 인덱스를 찾음
val lIndex = strList.indexOf("l")
val rIndex = strList.indexOf("r")
// "l"과 "r" 중 먼저 나오는 문자열에 따라 결과 반환
return when {
lIndex in strList.indices && (rIndex !in strList.indices || lIndex < rIndex) -> {
strList.copyOfRange(0, lIndex)
}
rIndex in strList.indices -> {
strList.copyOfRange(rIndex + 1, strList.size)
}
else -> {
arrayOf() // "l"과 "r"이 모두 없는 경우 빈 배열 반환
}
}
}
}
class Solution {
fun solution(strList: Array<String>): Array<String> {
if (!strList.contains("r") && !strList.contains("l")) return emptyArray()
if (strList.contains("l") && (!strList.contains("r") || strList.indexOf("l") < strList.indexOf("r"))) return strList.sliceArray(0 until strList.indexOf("l"))
if (strList.contains("r") && (!strList.contains("l") || strList.indexOf("r") < strList.indexOf("l"))) return strList.sliceArray((strList.indexOf("r") + 1) until strList.size)
return emptyArray()
}
}
indexOf
val index = arrayOf("a", "b", "c").indexOf("b") // 결과: 1
val notFound = arrayOf("a", "b", "c").indexOf("d") // 결과: -1
contains
val hasElement = arrayOf("a", "b", "c").contains("b") // 결과: true
val notFound = arrayOf("a", "b", "c").contains("d") // 결과: false
when 표현식
val x = 10
val result = when {
x > 5 -> "Greater than 5"
x == 5 -> "Equal to 5"
else -> "Less than 5"
}
emptyArray
val empty = emptyArray<String>() // 결과: []
sliceArray
val array = arrayOf("a", "b", "c", "d")
val result = array.sliceArray(0..2) // ["a", "b", "c"] (인덱스 0, 1, 2 포함)
val result2 = array.sliceArray(1 until 3) // ["b", "c"] (인덱스 1, 2 포함)
copyOfRange
val array = arrayOf("a", "b", "c", "d")
val result = array.copyOfRange(0, 3) // ["a", "b", "c"] (인덱스 0, 1, 2 포함, 3은 제외)
val result2 = array.copyOfRange(1, 3) // ["b", "c"] (인덱스 1, 2 포함, 3은 제외)
특징 | sliceArray | copyOfRange |
---|---|---|
범위 지정 방식 | IntRange 또는 until 사용 | 시작 인덱스와 끝 인덱스 명시 |
시작 인덱스 포함 | 포함 | 포함 |
끝 인덱스 포함 | 포함 | 포함되지 않음 |
반환 타입 | 원본 배열과 동일한 타입의 배열 반환 | 원본 배열과 동일한 타입의 배열 반환 |
예제 결과 | sliceArray(0..2) -> ["a", "b", "c"] | copyOfRange(0, 3) -> ["a", "b", "c"] |