package programmers;
import java.util.Arrays;
class 없는_숫자_더하기_Java_230809 {
public int solution(int[] numbers) {
int answer = 0;
boolean[] found = new boolean[10]; // 0부터 9까지의 숫자가 있는지 여부를 저장하는 배열
Arrays.sort(numbers);
// 주어진 배열의 숫자들을 확인하여 해당 숫자를 찾았음을 표시
for (int num : numbers) {
found[num] = true;
}
// 0부터 9까지의 숫자 중에서 찾을 수 없는 숫자들을 더함
for (int i = 0; i < 10; i++) {
if (!found[i]) {
answer += i;
}
}
return answer;
}
//사실 이거 2나 3 방향으로 푸는 게 맞다!!!! 효율!!
public int solution2(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
public int solution3(int[] numbers) {
return 45-Arrays.stream(numbers).sum();
}
}
package programmers
class 없는_숫자_더하기_Kotlin_230809 {
fun solution(numbers: IntArray): Int = 45 - numbers.sum()
fun solution_short(numbers: IntArray): Int = (0..9).filterNot(numbers::contains).sum()
//https://blog.yena.io/studynote/2020/01/22/Kotlin-Collection-Filter.html
//filterNot은 말 그대로 조건이 아닌 경우에만 남길 때 사용하는 함수이다.
//와... 함수를 좀 외워야겠다...
}
와... filterNot 함수를 몰라서 numbers.sum으로 풀고 뿌듯! 했는데 좋은 게 있었습니다.
공부는 좋은 것...
댓글
댓글 쓰기