풀이
class Solution {
fun solution(numbers: IntArray): Int {
var answer: Int = 0
for(i in 0..9){
if(numbers.indexOf(i)==-1){
answer += i
}
}
return answer
}
}
구현은 바로 했는데 다른 사람 풀이 보면 백퍼 이것보다 훨씬 더 간단할 것 같다 ㅎ
fold 메소드를 드디어 처음 써봤다. 그런데 for 문이랑 별 차이가 없다.
class Solution {
fun solution(numbers: IntArray): Int {
var answer: Int = (0..9).fold(0){acc,num -> acc + if(numbers.indexOf(num) ==-1) num else 0 }
return answer
}
}
다른 사람 풀이 1
class Solution {
fun solution(numbers: IntArray): Int = 45 - numbers.sum()
}
0부터 9까지의 합인 45에서 배열의 합만큼 뺐다.
다른 사람 풀이 2
class Solution {
fun solution(numbers: IntArray): Int = (0..9).filterNot(numbers::contains).sum()
}
filterNot(조건)
: 조건에 맞지않는 원소를 반환
numbers::contains
: numbers에 포함된 요소인지 확인
❓더블콜론 연산자 ::
더블콜론은 리플렉션을 위해서 사용한다. *리플렉션 : 런타임에 인스턴스 등을 통해 객체의 내부 구조 등을 파악
함수를 직접 호출하는게 아니라 객체로 접근할 수 있다.
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 수박수박수박수 | Kotlin (1) | 2024.01.03 |
---|---|
프로그래머스 | 가운데 글자 가져오기 | Kotlin (1) | 2024.01.02 |
프로그래머스 | 핸드폰 번호 가리기 (1) | 2023.12.27 |
프로그래머스 | 음양 더하기 (0) | 2023.12.26 |
프로그래머스 | 나누어 떨어지는 숫자 배열 (1) | 2023.12.26 |