728x90
배열의 길이를 2의 거듭제곱으로 만들기
class Solution {
fun solution(arr: IntArray): IntArray {
var answer: IntArray = arr
repeat(getNum(arr.size)){
answer = answer.plus(0)
}
return answer
}
fun getNum(size: Int): Int{
var two = intArrayOf(1, 2, 4, 8, 16, 32, 64, 128, 256, 512)
two.forEach {
if (it >= size)
return it - size
}
return 1024 - size
}
}
/*
fun solution(arr: IntArray): IntArray {
val size = arr.size
var n = 1
while (n <= size) n *=2
return arr + IntArray(n-size){0 }
}
*/
배열 비교하기
class Solution {
fun solution(arr1: IntArray, arr2: IntArray): Int =
if (arr1.size > arr2.size) 1
else if (arr1.size < arr2.size) -1
else arr1.sum().compareTo(arr2.sum())
}
문자열 묶기
class Solution {
fun solution(strArr: Array<String>): Int =
strArr.groupBy { it.length }
.maxOf { (key, value) -> value.size}
}
배열의 길이에 따라 다른 연산하기
class Solution {
fun solution(arr: IntArray, n: Int): IntArray {
var result = arr
if (arr.size % 2 == 0){
for (i in 0 until result.size){
if (i % 2 == 1)
result[i] += n
}
} else{
for (i in 0 until result.size){
if (i % 2 == 0)
result[i] += n
}
}
return result
}
}
뒤에서 5등까지
class Solution {
fun solution(num_list: IntArray): IntArray = num_list.sorted().slice(0 until 5).toIntArray()
}
728x90