없는 숫자 더하기

NJW·2021년 11월 1일
0

코테

목록 보기
85/170

들어가는 말

숫자 벡터가 주어지는데, 0에서 9까지 없는 숫자를 구해서 더하면 되는 거다.

코드 설명

먼저 0에서 9를 가지고 있는 벡터(n)를 하나 생성했다. 다음, 이중 반복문으로 주어진 벡터(numbers)와 비교하면 만일 같은 숫자가 있을 경우 n에서 값을 지운다. n에 남아있는 값을 전부 지우면 된다. 자꾸만 결과 값이 1 줄어든 값으로 나왔는데, 문제는 answer이 처음 주어질 때 -1을 넣고 주어졌다는 점... answer의 값을 0으로 바꿔줘야 한다.

코드

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers) {
    int answer = 0;
    vector<int> n;
    
    for(int i=0; i <= 9; i++){
        n.push_back(i);
    }
    
    for(int i=0; i < numbers.size(); i++){
        for(int j=0; j< n.size(); j++){
            if(numbers[i] == n[j]){
                n.erase(n.begin() + j);
            }
        }
    }
    
    for(int i=0; i<n.size(); i++){
        answer = answer + n[i];
    }
    
    return answer;
}

P.s

사실 이렇게 푸는 것보다 더 간단하게 푸는 방법이 있었다. 그건 0에서 9까지 더한 값 45에서 주어진 벡터 값을 하나씩 빼는 방법이다. 오... 그렇게 하면 굳이 새로운 벡터를 만들 필요도 이중 반복문을 사용할 필요도 없어진다.

profile
https://jiwonna52.tistory.com/

0개의 댓글