문제 설명
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;
}
'programmers' 카테고리의 다른 글
[Programmers]연습문제>최고의 집합 (0) | 2022.09.15 |
---|---|
[Programmers]연습문제>최댓값과 최솟값 + C++ <string>라이브러리 Stoi (0) | 2022.09.15 |
[Programmers]연습문제>3 x n 타일링 (0) | 2022.09.01 |
[Programmers]탐욕법(Greedy)>구명보트 (0) | 2022.09.01 |
[Programmers]연습문제>N-Queen + N차원 벡터 초기화 방법 (1) | 2022.09.01 |