프로그래머스 Lv.1 코딩테스트

[프로그래머스 Lv.1] 없는 숫자 더하기

하다블 2022. 2. 8. 15:57
반응형

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

 

코딩테스트 연습 - 없는 숫자 더하기

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

programmers.co.kr

문제는 다음과 같습니다.

 

프로그래머스에서 측정한 난이도에서 알 수 있듯이 단순한 for문으로 해결할 수 있습니다.

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> numbers) {
    int answer = 0;
    for(int i=0;i<=9;i++)
    {
        bool check{false};
        for(int j{0};j<numbers.size();j++)
        {
            if(numbers[j]==i)
            {
                check=true;
            }
        }
        if(check==false)
        {
            answer+=i;
        }
    }
    return answer;
}

시간 복잡도에서 좋지 못한 방법이긴 하지만 단순하게 풀 수 있는 방법 중 하나입니다.

이중 for문을 사용하여 0부터 9까지 모두 돌아보면서 vector에 그 원소가 존재하는지 일일이 체크하는 방법으로,

이중 for문이어서 속도가 오래 걸리지만 보다 간단하고 보는 사람의 입장에서도 바로 이해할 수 있을 것이라고 생각합니다.

반응형