package main.kotlin.programmers.lv01

/**
 *
 * https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=kotlin
 *
 * 문제 설명
 * 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다.
 * numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
 *
 * 제한사항
 * 1 ≤ numbers의 길이 ≤ 9
 * 0 ≤ numbers의 모든 원소 ≤ 9
 * numbers의 모든 원소는 서로 다릅니다.
 * 입출력 예
 * numbers	result
 * [1,2,3,4,6,7,8,0]	14
 * [5,8,4,0,6,7,9]	6
 * 입출력 예 설명
 * 입출력 예 #1
 *
 * 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.
 * 입출력 예 #2
 *
 * 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.
 *
 */

fun main() {
    solution(intArrayOf(1,2,3,4,6,7,8,0))
}

private fun solution(numbers: IntArray): Int {
    var answer: Int = 0

    for (i in 0..9) {
        if (!(numbers.contains(i))) {
            answer += i
        }
    }

    println("answer = $answer")

    return answer
}

private fun solution_1(numbers: IntArray): Int = (0..9).filterNot(numbers::contains).sum()

private fun solution_2(numbers: IntArray): Int  = 45 - numbers.sum()