0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers
가 매개변수로 주어집니다. numbers
에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
numbers
의 길이 ≤ 9numbers
의 모든 원소 ≤ 9numbers
의 모든 원소는 서로 다릅니다.맵을 사용해 0 ~ 9 까지의 값에 0을 입력해주고,
numbers 에 있는 값은 맵에 + 1 을 해주어서
2 진법으로 누락된 숫자를 구했다.
import java.util.*;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
Map<Integer, Integer> checker = new HashMap<>();
for (int i = 0; i < 10; i++) checker.put(i, 0);
for (int i = 0; i < numbers.length; i++) checker.put(numbers[i], 1);
for (Map.Entry<Integer, Integer> i : checker.entrySet()) {
if (i.getValue() == 0) answer += i.getKey();
}
return answer;
}
}
0 부터 9 까지의 모든 수를 다 더한 후,
number 의 값을 반복문으로 빼주었다.
아주 쉬운 방법이지만 이런 방법을 생각하기는 정말 쉽지않다.
기술적인 능력도 중요하지만 창의 적인 능력도 매우 중요한것같다.
class Solution {
public int solution(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
}