반응형
https://www.acmicpc.net/problem/10871
문제
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 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;
}
반응형
'코딩테스트 | 백준' 카테고리의 다른 글
[백준 10813 | C++] 공 바꾸기_ 1차원배열(array, for) (0) | 2025.01.10 |
---|---|
[백준 10818 | C++] 최소, 최대_ 배열 순회, 1차원 배열(array loop, for) (0) | 2025.01.02 |
[백준 10807 | C++] 개수 세기_ 배열 순회(array loop, for) (0) | 2024.12.30 |
[백준 11866 | C++] 요세푸스 문제 0_ 큐(queue) (1) | 2024.11.22 |
[ 백준 1110 | C++] 더하기 사이클 : do-while문 (0) | 2024.10.04 |