Menu
Coddy logo textTech

요소 존재 여부 확인

Coddy C++ 여정의 로직과 흐름 섹션에 포함된 레슨 — 56개 중 37번째.

집합(set)을 다룰 때, 연산을 수행하기 전에 특정 요소가 존재하는지 확인해야 할 때가 많습니다. .count() 메서드는 집합에 요소가 있는지 확인하는 간단한 방법을 제공합니다.

맵과 마찬가지로, .count() 메서드는 요소가 세트에 존재하면 1을, 존재하지 않으면 0을 반환합니다. 이러한 특징 덕분에 조건부 확인에 사용하기 적합합니다:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

이 접근 방식은 요소가 존재하는지 확실하지 않을 때 요소를 직접 접근하려고 시도하는 것보다 훨씬 안전합니다. .count()를 사용하여 사용자 입력을 검증하거나, 오류를 방지하거나, 현재 세트에 저장된 내용을 바탕으로 결정을 내릴 수 있습니다.

challenge icon

챌린지

쉬움

std::set에서 연산을 수행하기 전에 요소의 존재 여부를 안전하게 확인하는 방법을 보여주는 프로그램을 작성하세요. 이 챌린지는 요소 확인을 위한 .count() 메서드에 대한 이해도를 테스트합니다.

다음과 같은 입력이 제공됩니다:

  • 세트에 처음에 추가할 요소의 개수를 나타내는 정수 n
  • 세트에 삽입할 n개의 정수
  • 검색할 요소의 개수를 나타내는 정수 m
  • 세트에서 존재 여부를 확인할 m개의 정수

프로그램은 다음을 수행해야 합니다:

  1. 비어 있는 std::set<int>를 생성합니다.
  2. 추가할 요소의 개수를 읽고 .insert()를 사용하여 세트에 삽입합니다.
  3. 검색할 요소의 개수를 읽습니다.
  4. 각 검색 요소에 대해 .count() 메서드를 사용하여 세트에 존재하는지 확인합니다.
  5. 각 요소를 찾았는지 여부에 따라 적절한 메시지를 출력합니다.
  6. 모든 검색이 끝난 후, 찾은 요소의 총 개수를 출력합니다.

다음과 같은 정확한 출력 형식을 사용하세요:

각 검색 결과에 대해:

Searching for [number]: Found

요소를 찾지 못한 경우:

Searching for [number]: Not found

마지막 요약:

Total found: [count] out of [total_searches]

세트에 요소가 존재하는지 확인하려면 numbers.count(searchValue)를 사용하세요. 1을 반환하면 요소가 존재하는 것이고, 0을 반환하면 요소가 존재하지 않는 것입니다. 검색 작업 중에 성공적으로 찾은 요소의 개수를 추적하기 위해 카운터를 유지하세요.

직접 해보기

#include <iostream>
#include <set>
using namespace std;

int main() {
    // 세트에 추가할 요소의 개수를 읽습니다
    int n;
    cin >> n;
    
    // 빈 세트를 생성합니다
    set<int> numbers;
    
    // n개의 요소를 읽어 세트에 삽입합니다
    for (int i = 0; i < n; i++) {
        int element;
        cin >> element;
        numbers.insert(element);
    }
    
    // 검색할 요소의 개수를 읽습니다
    int m;
    cin >> m;
    
    int foundCount = 0;
    
    // TODO: 아래에 코드를 작성하세요
    // 각 검색 요소에 대해:
    // 1. 검색할 값을 읽습니다
    // 2. numbers.count(searchValue)를 사용하여 존재 여부를 확인합니다
    // 3. 적절한 메시지를 출력합니다
    // 4. 요소를 찾은 경우 foundCount를 업데이트합니다
    
    // 요약 정보를 출력합니다
    cout << "Total found: " << foundCount << " out of " << m << endl;
    
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직과 흐름의 모든 레슨