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의 모든 원소는 서로 다릅니다.
풀이
class Solution {
fun solution(numbers: IntArray): Int {
var answer = 0
val checkArr = BooleanArray(10)
numbers.forEach { checkArr[it] = true }
checkArr.forEachIndexed { index, b -> if (!b) answer += index }
return answer
}
}
- 해당범위의 값 중 없는 값만 더해서 반환하는 문제입니다. 해당문제에서는 값의 법위가 숫자이고 범위가 짧기 때문에 BooleanArray를 이용하여 문제를 풀어보았습니다. 이때 number 배열의 값은 BooleanArray의 index값과 매칭이 되기 때문에 따로 조건문 필요 없이 해당값을 true로 바꿔줍니다. number 배열의 순환이 끝난후 BooleanArray의 값중 false가 있는 곳은 한 번도 나온 적이 없다는 것을 의미하기에 그 값들의 index들을 더해 반환해 주면 끝입니다.
결과
'코틀린 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 하샤드 수 (Kotlin) (0) | 2023.08.04 |
---|---|
[프로그래머스] - x만큼 간격이 있는 n개의 숫자 (Kotlin) (0) | 2023.08.03 |
[프로그래머스] - 문자열 다루기 기본 (Kotlin) (0) | 2023.08.03 |
[프로그래머스] - 두 정수 사이의 합 (Kotlin) (0) | 2023.08.03 |
[프로그래머스] - 직사각형 넓이 구하기 (Kotlin) (0) | 2023.08.02 |