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을 반환하면 요소가 존재하지 않는 것입니다. 검색 작업 중에 성공적으로 찾은 요소의 개수를 추적하기 위해 카운터를 유지하세요.

치트 시트

.count()를 사용하여 집합(set)에 요소가 존재하는지 확인하세요. 요소가 존재하면 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;
}

이 방법은 요소에 직접 접근하려는 시도보다 안전하며, 조건부 확인 및 입력 유효성 검사에 적합합니다.

직접 해보기

#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실력 점검

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

로직과 흐름의 모든 레슨