0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers
가 매개변수로 주어집니다. numbers
에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
numbers
의 길이 ≤ 9numbers
의 모든 원소 ≤ 9numbers
의 모든 원소는 서로 다릅니다.입출력 예
내가 해결한 결과!
0부터 9까지만 있다고 함.
우선은 입력값 numbers 를 반복문으로 돌면서 , 어떤 숫자가 있는 건지 알아야겠다고 생각.
0~9 를 돌면서 같은게 뭐가 있는지 확인을 하면 되겠다고 생각함.
→ 뭐가 없는지 어떻게 알지 ?
→ 어차피 들어올 숫자도 제한적인데 그냥 그거 다 더한 거에서 있는걸 빼면 되겠다고 생각함.
class Solution {
public int solution(int[] numbers) {
int j = 0;
int sum = 45;
for (j = 0; j < numbers.length; j++) {
for (int i=0; i < 10; i++) {
if (numbers[j] == i) {
sum -= i;
continue;
}else {
continue;
}
}
}
return sum;
}
}
나와 다른 코드
결국 나는 이렇게 간결하게 할 수 있었음 .........
class Solution {
public int solution(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
}
내가 이해한 해석
boolean으로 배열을 만들면 초기 값이 전부 fales 인 것 같다. 그래서, numbers 안에 들어있는 숫자들은 true 가 되게 해주고, 나머지 숫자들은 초기 값인 false 일테니 , 그 값들만 더해준것!
class Solution {
public int solution(int[] numbers) {
int answer = 0;
boolean[] numarr = new boolean[10];
for(int i =0; i<numbers.length; i++){
numarr[numbers[i]] = true;
}
for(int i=0; i<numarr.length; i++){
if(numarr[i] == false){
answer += i;
}
}
return answer;
}
}