[프로그래머스] 없는 숫자 더하기 (Java)
첫번째 문제 풀이
class Solution {
public int solution(int[] numbers) {
int answer = 0;
int sum = 0;
for(int i = 0; i <= 9; i++){
sum += i;
}
for(int i = 0; i < numbers.length; i++){
sum -= numbers[i];
}
answer = sum;
return answer;
}
}
0-9까지의 숫자중 존재하지 않는 숫자의 합을 구하는 문제이므로,
0-9까지의 숫자합을 구한후 numbers배열 안에 있는 숫자들을 빼면서 값을 구해준다.
이렇게 구현할 경우 코드가 매우 간단하고 이해하기가 쉽다.
두번째 문제풀이
class Solution {
public int solution(int[] numbers) {
int answer = 0;
boolean[] exists = new boolean[10];
for(int number: numbers){
exists[number] = true;
}
for(int i = 0; i < exists.length; i++){
if(!exists[i]){
answer += i;
}
}
return answer;
}
}
boolean배열 ‘exists’를 사용하여 주어진 배열에 각 숫자가 존재하는지 여부를 체크한 다음,
존재하지 않는 숫자들을 합산하는 방식이다.
이 경우 어떤 숫자가 누락되었는지 파악할 수 있다.
즉 문제가 어떤 숫자가 누락되었는지를 확인하는 문제였다면 이방법이 더 적합하다.