요소 존재 여부 확인
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()를 사용하여 사용자 입력을 검증하거나, 오류를 방지하거나, 현재 세트에 저장된 내용을 바탕으로 결정을 내릴 수 있습니다.
챌린지
쉬움std::set에서 연산을 수행하기 전에 요소의 존재 여부를 안전하게 확인하는 방법을 보여주는 프로그램을 작성하세요. 이 챌린지는 요소 확인을 위한 .count() 메서드에 대한 이해도를 테스트합니다.
다음과 같은 입력이 제공됩니다:
- 세트에 처음에 추가할 요소의 개수를 나타내는 정수
n - 세트에 삽입할
n개의 정수 - 검색할 요소의 개수를 나타내는 정수
m - 세트에서 존재 여부를 확인할
m개의 정수
프로그램은 다음을 수행해야 합니다:
- 비어 있는
std::set<int>를 생성합니다. - 추가할 요소의 개수를 읽고
.insert()를 사용하여 세트에 삽입합니다. - 검색할 요소의 개수를 읽습니다.
- 각 검색 요소에 대해
.count()메서드를 사용하여 세트에 존재하는지 확인합니다. - 각 요소를 찾았는지 여부에 따라 적절한 메시지를 출력합니다.
- 모든 검색이 끝난 후, 찾은 요소의 총 개수를 출력합니다.
다음과 같은 정확한 출력 형식을 사용하세요:
각 검색 결과에 대해:
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;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.