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

YH·2023년 12월 13일
0

문제

없는 숫자 더하기 : 문제 링크


문제 분석

  • 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어진다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성
  • 제한 사항
    • 1 <= numbers의 길이 <= 9
    • 0 <= numbers의 모든 원소 <= 9
      numbers의 모든 원소는 서로 다르다.
  • find 함수를 사용하여 numbers 배열내에 check의 원소가 존재하는지 확인해야 하므로 algorithm 헤더를 include.
  • 0부터 9까지의 숫자중 찾을 수 없는 숫자들 찾아 더한 수를 저장할 정수형 변수 answer을 0으로, 0부터 9까지의 숫자를 저장한 정수형 벡터 check를 초기화. for loop를 통해 check의 첫번째부터 마지막 원소까지 순환하고, if문과 find() 함수를 통해 numbers내에 check의 원소가 존재하는지 확인하고 없다면 해당 정수를 answer에 더하고 저장. 최종적으로 저장된 answer을 return

1. vector내에 해당 원소가 존재하는지 확인
=> find(v.begin(), v.end(), 찾을 대상)
1) return 값이 v.end()인 경우 => 해당 원소가 존재하지 않음
2) return 값이 v.end()가 아닌 경우 => 해당 원소가 존재함
2. vector내에서 해당 원소가 위치하는 인덱스 찾기
=> find(v.begin(), v.end(), 찾을 대상) - v.begin


풀이

#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> numbers) {
    int answer = 0;
    vector<int> check = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    for(int i = 0; i < check.size(); ++i) {
        if(find(numbers.begin(), numbers.end(), check[i]) == numbers.end()) answer += check[i];
    }
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글