
#include <stdio.h>
int main() {
int N,X;
scanf("%d %d",&N,&X);
//배열 받기
int myary[N];
int ary2[N];
int k = 0;
for(int i = 0; i<N; i++) {
int a;
scanf("%d ",&a);
myary[i] = a;
//X보다 작은 수 있으면 저장
if(a<X) {
ary2[k++] = a;
}
}
//출력
for(int j = 0; j<k; j++) {
printf("%d ",ary2[j]);
}
return 0;
}
[주목할만한 부분]
차근히 풀면 된다.
다만, 결과 출력을 오름차순으로도 바꾸어 보자.
출력 부분만 손보면 될 것이다.
오름차순 정렬에는 두 가지 방법이 있는데,
첫 번째는 qsort 함수 사용(퀵 정렬),
두 번째는 for문 사용(버블 정렬)
이다.
1. qsort 함수 사용
최상단에 #include <stdlib.h> 를 추가한다.
qsort (배열의 시작 주소, 배열 요소 개수, 배열 요소 하나 크기, 비교에 필요한 포인터)
//qsort함수를 사용해 오름차순 정렬(퀵 정렬 방식) qsort(ary2, k, sizeof(int), compare); //출력 for (int j = 0; j < k; j++) { printf("%d ", ary2[j]); }
2. for문 사용
버블 정렬 방식으로 for문을 통해 양 옆을 비교한다.
시간 복잡도가 O(n^2)로 효율이 떨어지지만, 직관적인 방법으로 유용하게 쓸 수 있다.
//오름차순 정렬 for(int i = 0; i<k-1; i++) { for (int j = 0; j<k-i-1; j++) { //버블 정렬(양 옆을 비교해 자리 바꿈을 결정한다.) if (ary2[j] > ary2[j+1] ) { int temp = ary2[i]; ary2[[j] = ary2[j+1]; ary2[j+1] = temp; } } } //출력 for(int j = 0; j<k; j++) { printf("%d ",ary2[j]); }
'PROGRAMMING > [C] Baekjoon Online Judge (BOJ)' 카테고리의 다른 글
| [C/Baekjoon] 백준 10811번(4-9) : 바구니 뒤집기 (1) | 2025.01.04 |
|---|---|
| [C/Baekjoon] 백준 3052번(4-8) : 나머지 (0) | 2025.01.04 |
| [C/Baekjoon] 백준 10951번(3-12) : A + B - 4 (0) | 2024.12.30 |
| [C/Baekjoon] 백준 2480번(2-7) : 주사위 세개 (0) | 2024.11.17 |
| [C/Baekjoon] 백준 2525번(2-6) : 오븐 시계 (0) | 2024.11.17 |