개발공부/Programmers

[프로그래머스/C++] Level 1_없는 숫자 더하기

예슬예 2022. 1. 28. 20:45

<월간 코드 챌린지 시즌3 문제>

-더보기에 문제 있어요.-

더보기

<문제 설명>

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

5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.

입출력 예 #2

1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

 

<문제 풀이>

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers) {
    int answer = 0; //없는 숫자들의 합이 담길 변수
    vector<int> check(10); //0-9까지의 숫자가 있는지 확인하기 위한 배열

    for(int i=0;i<numbers.size();i++){
        check[numbers[i]] = 1; //numbers에 있는 숫자들에 해당하는 check index엔 1이 들어감.
    }

    for(int i=0;i<10;i++){
        if(check[i] == 0) answer+=i; //index가 0인 즉, 없는 숫자들은 answer변수에 누적합
    }

    return answer;
}