없는 숫자 더하기

KSang·2023년 11월 30일
0

[Kotlin]코드카타

목록 보기
27/100

문제설명

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

제한사항

1 ≤ numbers의 길이 ≤ 9
0 ≤ numbers의 모든 원소 ≤ 9
numbers의 모든 원소는 서로 다릅니다.

진행

1~9 까지 길이의 numbers를 랜덤으로 생성한뒤 그 안의 원소들을 랜덤하게 채워주자

mutablesetof를 이용해 중복이되지 않게 예방

while (arr.size < size) {
        do {
            x = Random.nextInt(0, 9)
        } while (!arr.add(x))
    }

배열의 크기가 사이즈만큼 될때까지 반복하고 do-while문을 써 arr에 이미 있는수면 계속 랜덤함수를 돌리게 만들었다

fun solution(numbers: IntArray): Int {
    var answer: Int = 0
    var i = 0
    val sum = (0..9).sum()
    while (i < numbers.size){
        answer += numbers[i]
        i++
    }
    return sum - answer
}

그냥 모든수를 더한뒤 0~9까지의 합인 45에서 빼주고 나머지를 출력한다

코드

package com.example.codekata

import kotlin.random.Random

fun main() {
    val arr = makenumbers()
    println("배열 ${arr.toList()}")
    println("result:${solution(arr)}")
}

fun solution(numbers: IntArray): Int {
    var answer: Int = 0
    var i = 0
    val sum = (0..9).sum()
    while (i < numbers.size){
        answer += numbers[i]
        i++
    }
    return sum - answer
}
fun makenumbers (): IntArray {
    val size = Random.nextInt(1,9)
    var arr = mutableSetOf<Int>()
    var x = 0

    while (arr.size < size) {
        do {
            x = Random.nextInt(0, 9)
        } while (!arr.add(x))
    }
    return arr.toIntArray()
}

결과

업로드중..

0개의 댓글