프로그래머스/lv1

프로그래머스 : 없는 숫자 더하기(lv1) C++

TIN9 2022. 11. 5.
반응형

프로그래머스 링크

https://school.programmers.co.kr/learn/courses/30/lessons/86051

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

내 코드

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers) {
    int answer = 0;
    
    size_t Size = numbers.size();
    
    // 0 ~ 9까지의 원소들을 담아야하기 때문에 10개의 원소를
    // -1로 전부 초기화된 배열을 만든다
    vector<int> Save(10, -1);
    
    for(size_t i = 0; i < Size; ++i)
    {
        // numbers의 값들을 Save인덱스 번호로 사용하고 해당 값을 저장한다.
        Save[numbers[i]] = numbers[i];
    }
    
    Size = Save.size();
    
    for(size_t i = 0; i < Size; ++i)
    {
        // -1이라는것은 저장되지 않은 원소기 때문에 해당 인덱스값을 더해주면 된다.
        if(Save[i] == -1)
        {
            answer += i;
        }
    }
    
    return answer;
}

다른 사람의 풀이 코드

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers) {

    int answer = 45;

    for (int i = 0 ; i < numbers.size() ; i++)
        answer -= numbers[i];

    return answer;
}

아예 0 ~ 9를 다 더한값에서 빼주면 되는방법도 있는어서 올려봅니다 ㄷㄷ..

이렇게 보니 엄청 간단하네요.

반응형

댓글