코드카타 - 제일 작은 수 제거하기

2024. 6. 14. 09:20코드카타(CodeKata)

문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

제한 조건
arr은 길이 1 이상인 배열입니다.
인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.


입출력 예
arr return
[4,3,2,1] [4,3,2]
[10] [-1]

풀이

class Solution {
    fun solution(arr: IntArray): IntArray {
        var answer = intArrayOf()
        val minimum = arr.minOrNull()
        var size = arr.size
        
        if (arr.size <= 1) answer = intArrayOf(-1)
        else answer = arr.filterNot {it == minimum}.toIntArray()
        return answer
    }
}

 

주의사항

- array에서 가장 작은 값을 찾을 때에는 minOrNull() 을 쓴다. 

- unresolved reference 오류가 뜰 때에는 함수가 어디 대문자나 소문자로 잘못 들어간 것일 수 있다. (ex. minOrNUll)

- 결괏값이 array로 나와야 하는 경우 원소 한 개짜리 배열이라도 intArrayOf(-1)처럼 들어가야 한다.

- arr.filter(), arr.filterNot() 함수를 통해 배열에서 원소를 필터링할 수 있다.

   ※ 참고: https://www.techiedelight.com/remove-an-element-from-an-array-in-kotlin/

 

Remove an element from an array in Kotlin | Techie Delight

This article explores different ways to remove an element from an array in Kotlin... The idea is to filter the array to remove the required element and accumulate the remaining values into a new array.

www.techiedelight.com