프로그래머스 Level 1
🔒 없는 숫자 더하기
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
1 ≤ numbers의 길이 ≤ 9
0 ≤ numbers의 모든 원소 ≤ 9
numbers의 모든 원소는 서로 다릅니다.
numbers | result |
---|---|
[1,2,3,4,6,7,8,0] | 14 |
[5,8,4,0,6,7,9] | 6 |
입출력 예 #1
입출력 예 #1
class Solution {
public int solution(int[] numbers) {
int answer = 0;
int[] answ = new int[10];
for(int i=0; i<numbers.length; i++) {
answ[numbers[i]] = 1;
}
for(int i=0; i<answ.length; i++) {
if(answ[i] == 0) answer += i;
}
return answer;
}
}
길이가 10인 정수형 배열 answ
를 만들었다.
이제 감자는 answ
에 0~9까지의 숫자 유무를 각 인덱스에 저장할 것이다.
반복문을 통해 numbers
의 값들을 answ
의 인덱스에 넣어주고 해당 answ
의 요소 값은 1로 변경해준다.
그러면 answ
에는 numbers
에 있는 값은 해당 인덱스에 1이 들어갈 것이고 없는 값이면 0이 될 것이다.
다시 한번 반복문을 통해 answ
의 각 요소들의 값을 확인한다.
만약 요소의 값이 0이라면 answ
의 인덱스는 numbers
에 없던 값이니 answer
에 해당 인덱스를 더해준다.
class Solution {
public int solution(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
}
처음부터 0~9까지를 모두 더한 값 45에서 numbers
의 값들을 빼주는 방법이다.
...이런 기발한 사람들!!