문제 설명
정수형 배열 내 없는 숫자를 더한 값을 반환하는 문제입니다.
ex) [1,2,3,4,6,7,8,0] -> 14 (5 + 9)
ex) [5,8,4,0,6,7,9] -> 6 (1 + 2 + 3)
정수형 배열의 길이는 9 이하에 numbers의 모든 원소는 서로 다릅니다.
문제 풀이
0은 더하기를 할 필요가 없으니
숫자 1부터 9까지 numbers 배열에 포함되어 있지 않으면 answer에 추가시키는 방법이 있습니다.
하지만 더 빠른 방법을 찾을 수 있습니다.
numbers의 모든 원소는 서로 다르다는 조건을 보면 숫자가 중복되지 않는다는 것을 알 수 있습니다.
그럼 1부터 9까지 더한 값에서 numbers에 있는 숫자를 빼면 없는 숫자끼리 더한 값이 나옵니다.
제출 코드
using System;
public class Solution
{
public int solution(int[] numbers)
{
int answer = 0;
for (int i = 1; i <= 9; i++)
{
answer += i;
}
for (int i = 0; i < numbers.Length; i++)
{
answer -= numbers[i];
}
return answer;
}
}