본문 바로가기
Coding Test/C++

[프로그래머스] 없는 숫자 더하기 C++ Code

by giem 2022. 8. 8.
반응형

2022.08.08 - [Coding Test/Python] - [프로그래머스] 없는 숫자 더하기 Python Code

2022.08.08 - [Coding Test/Go] - [프로그래머스] 없는 숫자 더하기 Go Code

저번 python, go 포스트에 이어서

 

프로그래머스 레벨 1 없는 숫자 더하기를 C++로 풀어보겠다.

 

 

문제

문제는 간단하게 이해할 수 있다.

[0-9]의 범위에서 numbers에 없는 숫자를 찾아서 더하면 된다.

 

구현 방식

이번에도 0-9의 총합 45에서 numbers의 총합을 빼도록 구현했다.

 

코드
#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers) {
    int sum = 0;

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

    return 45-sum;
}

 

다른 사람의 풀이에서 괜찮은 풀이를 봤다.

#include <bits/stdc++.h>
using namespace std;

int solution(vector<int> numbers) {
    return 45 - accumulate(numbers.begin(), numbers.end(), 0);
}

 

C++ accumulate의 doc은 다음 링크에서 확인해볼 수 있다.

https://en.cppreference.com/w/cpp/algorithm/accumulate

 

기본적으로는 누산기의 역할을 하는 것으로 이해할 수 있다.

벡터의 덧셈, 곱셈 등의 누산기의 기능을 모두 할 수 있는 것으로 보인다.

 

다만 조심해야 할 것은 init value랑 리턴 값이 같기에

초기 값을 잘 설정해야 overflow가 나지 않을 것으로 보인다.

 

다음엔 javascript로 풀어보겠다.

반응형

댓글