class Solution {
fun solution(intStrs: Array<String>, k: Int, s: Int, l: Int): IntArray {
var result = mutableListOf<Int>()
intStrs.map{
if(it.substring(s,s+l).toInt() > k) result.add(it.substring(s,s+l).toInt())
}
return result.toIntArray()
}
}
class Solution {
fun solution(intStrs: Array<String>, k: Int, s: Int, l: Int): List<Int> {
return intStrs.map { it.substring(s, s + l).toInt() }.filter { it > k }
}
}
위 사람 문제풀이가 좋아요 수가 많았으나 출제자의 정답 유형 자체를 변경하여 제출했기 때문에 다른 문제풀이를 추가로 덧붙인다.
class Solution {
fun solution(intStrs: Array<String>, k: Int, s: Int, l: Int): IntArray {
var answer: IntArray = intArrayOf()
return intStrs.map { it.slice(s..(s+l-1)).toInt() }.filter { it > k }.toIntArray()
}
}
array, List(MutableList)
map
val numbers = arrayOf(1, 2, 3)
val squared = numbers.map { it * it }
println(squared) // 출력: [1, 4, 9]
val list = listOf("1", "2", "3")
val intList = list.map { it.toInt() }
println(intList) // 출력: [1, 2, 3]
filter
val numbers = arrayOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // 출력: [2, 4]
val list = listOf("apple", "banana", "cherry")
val filteredList = list.filter { it.startsWith("b") }
println(filteredList) // 출력: [banana]
Array
와 IntArray
의 차이점
특징 | Array<T> | IntArray |
---|---|---|
제네릭 지원 여부 | T 타입의 임의 객체 저장 가능 | 정수형(Int)만 저장 가능 |
메모리 효율성 | 객체 참조 저장(박싱, Boxing 필요) | 기본 자료형(Int)로 저장 |
동작 방식 | 모든 타입 저장 가능(Array, Array) | 정수만 다루는 특화 배열 |
속도 및 메모리 효율성 | 박싱/언박싱 오버헤드가 있음 | 박싱/언박싱 오버헤드 없음 |
박싱(Boxing)이란?
Array는 Int를 객체로 포장(Boxing)하여 저장하므로, 박싱/언박싱 과정이 추가됩니다.
IntArray는 기본 자료형(Int)만 저장하므로 이 과정이 없고 더 효율적입니다.
오오 고차함수를 사용하셨군요 코테 풀 때 고차함수 꿀이조!