programmers

[Programmers]월간 코드 챌린지 시즌3>없는 숫자 더하기

윤만석 2022. 9. 15. 10:49

문제 설명

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

 

프로그래머스 level1 문제입니다.

숫자가 10개밖에 없으므로, 비트마스크로 문제를 풀어봤습니다.

 

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers) {
    int n=0,sum=0;
    for(int i=0;i<numbers.size();i++){
        n|=(1<<numbers[i]);  //n에 숫자 저장
    }
    for(int i=0;i<10;i++){
        if((1<<i)&(~n))  //0부터9까지 n에 없는 숫자 저장
            sum+=i;
    }
    return sum;
}