0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers
가 매개변수로 주어집니다.
numbers
에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
numbers
의 길이 ≤ 9numbers
의 모든 원소 ≤ 9numbers
의 모든 원소는 서로 다릅니다.numbers | result |
---|---|
[1,2,3,4,6,7,8,0] | 14 |
[5,8,4,0,6,7,9] | 6 |
class Solution {
public int solution(int[] numbers) {
int answer = 0;
int[] all = {0,1,2,3,4,5,6,7,8,9};
List<Integer> list = Arrays.stream(numbers)
.boxed()
.collect(Collectors.toList());
for(int i=0; i<10; i++) {
if(!list.contains(all[i])) {
answer += all[i];
}
}
return answer;
}
}
Arrays.asList()
메서드 사용으로 리스트 전환 불가.class Solution {
public int solution(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
}
class Solution {
public int solution(int[] numbers) {
return 45 - Arrays.stream(numbers).sum();
}
}
sum()
메서드로 해당 배열 원소의 합을 구한 뒤,sum()
메서드오ㅏ...........우리나라에는 정말 천재들이 많은 것 같다😯😯😯.....!!!!!!!!!!!
그리고 새삼 다시 한 번 Stream의 위력을 깨닫는다...!!!!!🤓!!!!ㅋㅋㅋㅋㅋ
나의 머릿속에서는 총 합에서 빼야겠다 라는 생각은 1도 안들었고~~~
그저 배열에 값이 포함되어 있는지 아닌지를 어떻게 알아낼까?? 에 꽃혀서
리스트의 contains()
메서드가 떠올랐고, 이를 활용하기 위해 배열을 리스트로 바꾸기 위해 스트림을 사용했는데...생각해보니 숫자의 범위가 정해져있고 포함되어있냐 없냐를 구분하기 위해서는 그저 총 합에서 빼면 되었던 것...! 😯!!! 그럼 스트림을 사용해서 굳이굳이 리스트로 변환하지 않고 바로 sum()
메서드로 한 방에 끝낼 수 있었는데!!!!😂😂😂ㅋㅋㅋㅋㅋㅋㅎ ㅑ,,오늘도 배워갑니다✨