[C] 백준 10871번 : X보다 작은 수
2020. 6. 3. 07:51
#include <stdio.h>
//배열을 사용하여 문제를 해결
int main( ){
int N, X, i;
int numbers[10000];
//N이 10000보다 작거나 같기 때문에 배열의 크기를 10000으로 잡음
scanf("%d %d", &N, &X);
for(i=0 ; i<N ; i++){
scanf("%d", &numbers[i]);
}
//입력하는 모든 정수를 배열에 저장
for(i=0 ; i<N ; i++){
if(numbers[i] < X){
printf("%d ", numbers[i]);
}
//만일 i번째 배열에 저장된 수가 X보다 작을 경우 출력
}
}
N개의 정수 중에서 X보다 작은 수들을 출력하는 프로그램으로, 문제는 아래와 같다.
처음에 짰던 코드는 N개의 정수를 입력받을 때 X와 크기를 비교해보고, 만일 X보다 작으면 배열에 저장하는 방식으로 코드를 짰다. 그리고 맨 마지막에 그 배열을 출력하는 방식이었는데 막상 실행시켜보니 배열이 제대로 출력이 되지 않는 문제가 발생했다.
위의 방법 대신 아예 처음부터 N개의 정수들을 입력받으면서 바로 배열에 저장하고, 다시 배열에 저장된 수들을 X와 크기를 비교해서 출력하도록 했다.
#include <stdio.h>
//배열을 사용하여 문제를 해결
int main( ){
int N, X, i;
int numbers[10000];
//N이 10000보다 작거나 같기 때문에 배열의 크기를 10000으로 잡음
scanf("%d %d", &N, &X);
for(i=0 ; i<N ; i++){
scanf("%d", &numbers[i]);
}
//입력하는 모든 정수를 배열에 저장
for(i=0 ; i<N ; i++){
if(numbers[i] < X){
printf("%d ", numbers[i]);
}
//만일 i번째 배열에 저장된 수가 X보다 작을 경우 출력
}
}
처음에 구상했던 코드보다 조금 덜 복잡한 방식이긴 하다.
백준에 제출하니 정답 처리 !
'Programming > BOJ' 카테고리의 다른 글
[C] 백준 10951번 : A+B - 4 (0) | 2020.06.07 |
---|---|
[C] 백준 10952번 : A+B - 5 (0) | 2020.06.03 |
[C] 백준 2439번 : 별 찍기 - 2 (0) | 2020.06.02 |
[C] 백준 10950번 : 정수를 입력받은 후 합 출력 (0) | 2020.06.01 |
[C] 백준 2884번 : 알람시계 맞추기 (0) | 2020.05.30 |