문제: 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
간단하게 생각해서 0부터 9까지 숫자는 전부 더하면 45이므로 45에서 numbers 배열에 있는 숫자를 빼면 남는 숫자의 합이 구해진다.
예를들어
numbers = {1, 2, 3, 4, 6, 7, 8, 0}
0부터 9까지의 숫자 중에 없는 숫자는 5, 9이므로 합은 14이다.
class Solution {
public int solution(int[] numbers) {
int answer = 45;
for (int i = 0; i < numbers.length; i++) {
answer -= numbers[i];
}
return answer;
}
}
class Solution {
public int solution(int[] numbers) {
boolean[] check = new boolean[10];
for (int i = 0; i < numbers.length; i++) {
check[numbers[i]] = true;
}
int answer = 0;
for (int i = 0; i <= 9; i++) {
if (check[i] == false) {
answer += i;
}
}
return answer;
}
}
check 배열로 출석부를 만든다.
boolean[] check = new boolean[10];
예를 들어 numbers에 3이 있으면
check[3] = true;
3번 숫자는 있다고 표시한다.
마지막에 0부터 9까지 보면서
if (check[i] == false)
아직 false인 숫자는 numbers에 없는 숫자니까 answer에 더한다.
class Solution {
public int solution(int[] numbers) {
int answer = 0;
for (int i = 0; i <= 9; i++) {
boolean found = false;
for (int j = 0; j < numbers.length; j++) {
if (i == numbers[j]) {
found = true;
break;
}
}
if (found == false) {
answer += i;
}
}
return answer;
}
}
0부터 9까지 하나씩 물어보고 없으면 더한다.
if (found == false) {
answer += i;
}
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
return 45 - Arrays.stream(numbers).sum();
}
}
numbers 배열 안의 숫자를 전부 더해준다.
Arrays.stream(numbers).sum()
그리고나서
45 - numbers의 합
을 바로 return하는 방식