Moments of growth

[Level1 Kotlin] 없는 숫자 더하기 본문

카테고리 없음

[Level1 Kotlin] 없는 숫자 더하기

뮤링이 2022. 9. 18. 14:53

[내 코드]

class Solution {
    fun solution(numbers: IntArray): Int =
        45 - numbers.sum()
}

 

[다른 사람 풀이]

class Solution {
    fun solution(numbers: IntArray): Int = (0..9).filterNot(numbers::contains).sum()
}

(0..9) 이게 리스트인가?

(0..9).filterNot(numbers::contains)?  이 부분 모르겠음

 

List<String> 에서의 필터 사용

Filter

dinnerList.filter {
    it.startsWith("P")
}
// [Pizza, Pasta]

먼저 가장 기초가 되는 filter이다. Boolean 값에 따라 필터링을 할지 안 할지 결정한다. 위의 경우에는 “P”로 시작하는 항목만 true이고, 이 값들만 필터링된다.

 

FilterNot

dinnerList.filterNot {
    it == "Pizza"
}
// [Risotto, Pasta, Hamburger]

filterNot은 말 그대로 조건이 아닌 경우에만 남길 때 사용하는 함수이다. 가독성이 걱정될 때 적절히 사용하면 로직을 보기 좋게 정리할 수 있을 것이다.

 

FilterIndexed

dinnerList.filterIndexed { index, s ->
    index == 3
}
// [Hamburger]

인덱스를 통해 처리하고 싶을 때에는 filterIndexed를 통해 인덱스와 값을 각각 받을 수 있다.

 

Comments