반응형
reduce
class Solution {
fun solution(num_list: IntArray): Int {
val product = num_list.reduce { a, b -> a * b } // 원소들의 곱 계산
val sum = num_list.reduce { a, b -> a + b}
// val sum = num_list.sum()
val squareOfSum = sum * sum // 합의 제곱 계산
return if (product < squareOfSum) 1 else 0
}
}
joinToString
class Solution {
fun solution(num_list: IntArray): Int {
//리스트 선언
var even = mutableListOf<String>()
var odd = mutableListOf<String>()
//문자열로 짝수와 홀수 저장하기 add사용
for (i in num_list) {
if(i % 2 == 0) {
even.add(i.toString())
} else {
odd.add(i.toString())
}
}
// 기준으로 문자열을 합친 후, Int로 변환하기
val oddNumber = odd.joinToString("").toInt()
val evenNumber = even.joinToString("").toInt()
return oddNumber + evenNumber
}
}
filter
arrayList.filter { it % 2 == 0 }
forEach , when
class Solution {
fun solution(n: Int, control: String): Int {
var answer = n
control.forEach {
when(it){
'w' -> answer += 1
's' -> answer -= 1
'd' -> answer += 10
'a' -> answer -= 10
}
}
return answer
}
}
map
val numbers = arrayOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map { it * it }
println(squaredNumbers) // 출력: [1, 4, 9, 16, 25]
slice
val list = listOf(1, 2, 3, 4, 5)
val sliced = list.slice(1..3)
println(sliced) // 출력: [2, 3, 4]
filter
val list = listOf(1, 2, 3, 4, 5)
val filtered = list.filter { it%2 == 0}
println(filtered) // 출력: [2, 4]
array와 List의 차이
- 배열(Array): 고정 크기의 데이터나 빠른 임의 액세스가 필요한 경우.
- 리스트(List): 크기가 동적으로 변경되거나 데이터에 순차적으로 액세스하는 경우.
var arr = mutableListOf<Int>()
return arr.toIntArray()
drop
리스트 또는 배열의 앞쪽에서 지정된 개수만큼의 요소를 제외한 나머지 요소들을 반환한다.
val list = listOf(1, 2, 3, 4, 5)
val result = list.drop(2) // [3, 4, 5]
indices
컬렉션의 모든 인덱스를 나타내는 IntRange를 반환합니다. 이는 주로 반복문과 함께 사용되어 컬렉션의 각 요소에 접근하는 데 유용합니다.
val fruits = listOf("apple", "banana", "cherry")
for (i in fruits.indices) {
println("Fruit at index $i is ${fruits[i]}")
}
startsWith, endsWith,contains
class Solution {
fun solution(my_string: String, is_prefix: String): Int = if (my_string.startsWith(is_prefix)) 1 else 0
}
indexOf() , lastIndexOf()
fun main() {
val str = "Hello, Kotlin"
// 문자 'o'의 첫 번째 위치를 찾음
println(str.indexOf('o')) // 출력: 4
println(str.lastIndexOf('str'))
}
mapIndexed
val numbers = listOf(10, 20, 30, 40, 50)
val modifiedNumbers = numbers.mapIndexed { index, value ->
if (index % 2 == 0) {
value * 2
} else {
value / 2
}
}
println(modifiedNumbers)
// 출력: [20, 10, 60, 20, 100]
chunked
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val chunkedList = numbers.chunked(3)
println(chunkedList)
// 출력: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
}
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val chunkedTransformed = numbers.chunked(3) { chunk ->
chunk.sum()
}
println(chunkedTransformed)
// 출력: [6, 15, 24, 10]
}
fold(0) 누적합 0부터 시작
val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.fold(0) { acc, num -> acc + num }
// sum = 15
foldIndex(0)
class Solution {
fun solution(absolutes: IntArray, signs: BooleanArray): Int {
return absolutes.foldIndexed(0) { idx, acc, num ->
acc + if (signs[idx]) num else -num
}
}
}
toCharArray()
class Solution {
fun solution(s: String): String {
var a = s.toCharArray()
return a.sortedDescending().joinToString("")
}
}
반응형
'Kotlin' 카테고리의 다른 글
Collection 함수 (2) | 2024.09.18 |
---|---|
함수 / 타입 추론 / 조건문 / 반복문 (0) | 2024.04.08 |
변수와 상수 / 기본 자료형 / 형변환 / 배열 (0) | 2024.04.01 |