Menu
Coddy logo textTech

벡터 데이터 필터링

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

challenge icon

챌린지

쉬움

컬렉션에서 특정 숫자를 추출하기 위한 데이터 필터링 시스템을 구현하는 프로그램을 작성하세요. 이 챌린지는 데이터를 선택적으로 처리하기 위해 벡터, 반복문, 조건부 로직 및 함수 설계를 결합하는 능력을 테스트합니다.

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

  • 컬렉션에 포함된 정수의 개수를 나타내는 정수 n
  • 필터링할 숫자를 나타내는 n개의 정수
  • 필터링을 위한 최소값을 나타내는 정수 threshold

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

  1. std::vector<int>와 정수 threshold를 매개변수로 받는 filterNumbers라는 이름의 함수를 생성합니다.
  2. 이 함수는 원래 벡터의 숫자 중 threshold보다 큰 숫자만 포함하는 새로운 std::vector<int>를 반환해야 합니다.
  3. main 함수에서 입력값을 읽고 n개의 정수로 벡터를 채웁니다.
  4. 채워진 벡터와 threshold를 사용하여 filterNumbers 함수를 호출합니다.
  5. 먼저 필터링된 숫자의 개수를 출력한 다음, 필터링된 각 숫자를 별도의 줄에 출력합니다.

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

첫 번째 줄 - 필터링된 숫자의 개수:

Filtered count: [number_of_filtered_elements]

그 다음 각 필터링된 숫자를 별도의 줄에 출력:

[filtered_number_1]
[filtered_number_2]
...

필터를 통과한 숫자가 없으면 다음만 출력합니다:

Filtered count: 0

filterNumbers 함수는 새로운 빈 벡터를 생성하고, 범위 기반 for 루프를 사용하여 입력 벡터를 반복하며, if 문을 사용하여 각 숫자를 threshold와 비교해야 함을 기억하세요. threshold보다 엄격히 큰 숫자만 push_back()을 사용하여 결과 벡터에 추가해야 합니다. 함수는 필터링된 요소만 포함하는 새 벡터를 반환해야 합니다.

직접 해보기

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

// TODO: 여기에 filterNumbers 함수를 만드세요

int main() {
    // 정수의 개수를 읽습니다
    int n;
    cin >> n;
    
    // 정수들을 벡터에 읽어 들입니다
    vector<int> numbers;
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        numbers.push_back(num);
    }
    
    // 임계값을 읽습니다
    int threshold;
    cin >> threshold;
    
    // TODO: filterNumbers 함수를 호출하고 결과를 저장하세요
    
    // TODO: 요구된 형식에 따라 필터링된 개수와 숫자들을 출력하세요
    
    return 0;
}

로직과 흐름의 모든 레슨

직접 연습해 보세요: 온라인 C++ 컴파일러