본문 바로가기

프로그래머스(Kotlin)/Level 1

[프로그래머스 (Kotlin)] 나누어 떨어지는 숫자 배열

728x90

힌트

  1. 정렬과 필터링
    • 먼저 arr.sorted()를 통해 배열을 오름차순으로 정렬한 후, filter 함수를 사용하여 divisor로 나누어 떨어지는 요소만 필터링합니다.
    • filter { it % divisor == 0 }는 각 요소에 대해 나머지가 0인 경우만 남깁니다.
  2. 빈 배열 처리
    • 필터링된 결과 배열 result의 크기가 0일 경우, 즉 조건을 만족하는 요소가 없을 때는 IntArray(1) { -1 }를 반환하여 -1을 값으로 가지는 배열을 반환합니다.
    • 이는 문제의 조건을 만족하지 않는 경우에 대비한 예외 처리입니다.
  3. 정렬된 결과 반환
    • 필터링된 결과가 있을 경우, 정렬된 상태에서 결과를 반환하므로 배열의 요소는 항상 오름차순으로 출력됩니다.

 


정답은 더보기 클릭

더보기
class Solution {
    fun solution(arr: IntArray, divisor: Int): IntArray {
        // 주어진 배열(arr)을 정렬한 후, divisor로 나누어 떨어지는 값들만 필터링하여 배열로 변환합니다.
        var result = arr.sorted().filter {it % divisor == 0} .toIntArray()
        
        // 필터링된 결과가 없다면, 배열에 -1을 담아 반환합니다.
        if (result.size == 0) 
            return IntArray(1) {-1}
        
        // 필터링된 결과가 있다면 해당 배열을 반환합니다.
        return result
    }
}
728x90