백준 10871번
https://www.acmicpc.net/problem/10871
10871번: X보다 작은 수
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
www.acmicpc.net
1.문제
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
2. 내가 작성한 알고리즘
#include <stdio.h>
int main()
{
int A,X,input;
scanf("%d %d",&A, &X);
for(int i=0;i<A;i++){
scanf("%d",&input);
if(input<X) {
printf("%d ",input);
}}
return 0;
}
3. 이번 알고리즘을 통해 배운 점
반목문을 통해 scanf()를 이용하여 수를 저장하고 출력하는데 왜 바로바로 값이 출력되지 않고 입력이 다 된 후에 값이 출력될까
그 이유는 scanf() 는 버퍼를 사용한다.
scanf() 함수는 버퍼를 사용하기 때문에 데이터가 조건에 맞게 저장될때까지 입력이 우선이 되여 저장된다.
이후 입력이 다 들어오면 역순으로 출력이 된다. 단순히 생각해서 scanf()는 입력하는 함수라기 보단 저장하는 함수라 생각하면 편하게 이해할수 있다.
예시)
#include <stdio.h>
int main()
{
int num;
int i;
printf("숫자입력");
for(i=1;i<=5;i++){
scanf("%c",&num);
printf("i:%d %c \n",i,num);
}
return 0;
}
'C > 백준 알고리즘 (c언어)' 카테고리의 다른 글
1차원 배열 practice 02_최댓값 구하기 (0) | 2021.06.29 |
---|---|
1차원배열 practice 01_평균은 넘겠지 (0) | 2021.06.29 |
for문 practice 02_ A+B-4 (0) | 2021.06.28 |
while문 practice 01_더하기 싸이클 (0) | 2021.06.28 |
if문 practice 01 문제 : 알람시계 (0) | 2021.06.26 |