문제설명
0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ numbers의 길이 ≤ 9
0 ≤ numbers의 모든 수 ≤ 9
numbers의 모든 수는 서로 다릅니다.
입출력 예
문제를 접했을 때 "numbers에서 없는 숫자를
어떤식으로 찾아서 합계를 구할 것인지"가 관건인 것 같았다.
코드
class Solution { public int solution(int[] numbers) { int [] arr = {0,1,2,3,4,5,6,7,8,9}; // 비교용 int sum = 0; // 합계 for(int i = 0 ; i < arr.length; i++) { boolean flag = false; for(int j = 0; j < numbers.length; j++) { if(arr[i] == numbers[j]) flag = true; } if(!flag) sum += arr[i]; } return sum; } }
코드의 핵심은 boolean 변수를 통해 0~9 숫자가 numbers 배열에 존재하면 스킵하고 존재하지 않으면 sum 변수에 해당 숫자를 더하는 것이다.