문제
N개의 정수 중에서 X보다 작은 수를 입력 순서대로 출력하라.
입력
첫째 줄에 N, X가 주어지고, 둘째 줄에 N개의 정수가 주어진다.
출력
X보다 작은 수를 공백으로 구분하여 출력한다.
예제
| 입력 | 출력 |
|---|---|
10 5 1 10 4 9 2 3 8 5 7 6 | 1 4 2 3 |
풀이
배열을 순회하며 X보다 작은 원소만 출력한다.
- N개의 정수를 배열에 입력받는다
- 배열을 순회하며 각 원소가 X보다 작은지 확인한다
- 조건을 만족하는 수만 출력한다
핵심 아이디어: 단순 필터링 문제로 O(N)에 해결된다.
코드
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
int N, X;
cin >> N >> X;
int arr[10000];
for (int i = 0; i < N; i++)
{
cin >> arr[i];
}
for (int i = 0; i < N; i++)
{
if (arr[i] < X)
{
cout << arr[i] << " ";
}
}
return 0;
}복잡도
- 시간: O(N)
- 공간: O(N)