0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한 사항
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
입출력 예시
- numbers = {1,2,3,4,6,7,8,0} -> answer = 14
5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.
- numbers = {5,8,4,0,6,7,9} -> answer = 6
1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.
class Solution {
public int solution(int[] numbers) {
int answer = 0;
boolean havingNum = false;
for(int i=0;i<10;i++) {
havingNum=false;
for(int j=0;j<numbers.length;j++) {
if(numbers[j]==i) {
havingNum = true;
}
}
if(!havingNum) {
answer=answer+i;
}
}
return answer;
}
}
class Solution {
public int solution(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
}
풀이 해석
간단하게 0~9까지의 합인 45에서 주어진 배열을 뺀 값이다.
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
return 45-Arrays.stream(numbers).sum();
}
}
풀이 해석
스트림을 이용하여 다른 풀이 1 과 같이 0~9까지의 합인 45에서 배열의 값을 뺀 값이다.
문제를 풀 당시에는 단순히 문제 설명만 보고 주어진 배열에서 0~9까지의 숫자 중 안들어가 있는 숫자를 찾는것에만 열중했지만, 다른 풀이들을 보고 망치로 한대 얻어 맞은듯한 느낌을 받았다. 그냥 45에서 빼면 되는것을 너무 어렵게만 생각해서 다른 관점으로 보지 못하였다.