for (int i = 0; i < numbers.length; i++) {
answer += numbers[i];
0부터 numbers의 길이만큼 for문을 사용해 반복적으로 출력
numbers[i]를 answer와 더한 후 저장
return 45 - answer;
0부터 9까지 모두 더한 수는 45
numbers에 포함되어 있지 않은 수의 합들을 구해야하므로 전체(45)에서 answer의 값을 빼면 numbers에 없는 숫자의 합이 나옴
class Solution { public static int solution(int[] numbers) { int answer = 0; for (int i = 0; i < numbers.length; i++) { answer += numbers[i]; } return 45 - answer; } }
import java.util.Arrays; class Solution { public static int solution(int[] numbers) { int answer = 0; boolean[] flag = new boolean[10]; Arrays.fill(flag, false); for(int i = 0; i <= 9; i++){ for(int j : numbers){ if(i == j) flag[i] = true; } } for(int i = 0; i < flag.length; i++){ if(flag[i] == false) answer += i; } return answer; } }
배열의 길이가 10인 boolean 타입의 배열 flag를 생성 및 선언
Arrays.fill()
을 사용하여 flag의 배열을 모두 false로 초기화
numbers는 0부터 9까지 숫자이므로 for문을 사용하여 반복 출력
향상된 for문을 사용하여 int 타입의 변수 j를 선언
numbers 배열에 대한 원소값을 출력 저장된 값이 매 반복마다 하나씩 순서대로 변수에 저장
원래 나와야하는 총 합계와 주어진 숫자의 합계가 같을 때 true
저장된 flag의 길이만큼 for문을 사용하여 반복 출력
원래 나와야하는 총 합계와 주어진 숫자의 합계가 같지 않아 false가 될 때 flag의 i번째 값을 answer에 더한 후 저장
합계가 다른 값이 저장되어 있는 answer를 return