본문 바로가기
코딩테스트 | 백준

[백준 10871 | C++] X보다 작은 수_ 배열 순회(array loop, for, vector)

by 솨앙 2025. 1. 1.
반응형

https://www.acmicpc.net/problem/10871

문제

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

백준_10871_x보다작은수

접근 방법

- N과 x를 입력받으면
- 크기가 N인 배열에 N개의 숫자를 넣는다 -> N의 수는 계속 바뀌므로 동적 배열로 생성한다
- 배열을 순회하며 arr[i]가 x보다 작으면 정답 배열에 넣는다
- 이때 정답 배열의 크기를 미리 알 수 없으므로 벡터로 설정한다

 

정답 코드

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int N, x;
    cin >> N >> x;

    int* arr = new int[N];
    vector<int> answer;

    // 배열 입력 받기
    for (int i = 0; i < N; i++) {
        cin >> arr[i];
    }

    // 조건 만족하는 값 벡터에 추가
    for (int i = 0; i < N; i++) {
        if (arr[i] < x) {
            answer.push_back(arr[i]);
        }
    }

    // 결과 출력
    for (int i = 0; i < answer.size(); i++) {
        cout << answer[i] << " ";
    }

    // 메모리 해제
    delete[] arr;

    return 0;
}

정답 결과

반응형