[오늘의 백준] 2번째
02 Nov 2020“10871번”
단계별로 풀어보기
- for문
- X보다 작은 수
문제 : 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
입력 : 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
출력 : X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// IO 객체 선언과 동시에 초기화
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
// 문자열을 구분자로 나누는 StringTokenizer 선언과 동시에 초기화 (n, x 데이터)
StringTokenizer st = new StringTokenizer(in.readLine());
int n = Integer.parseInt(st.nextToken());
int x = Integer.parseInt(st.nextToken());
// 수열 A readLine()
st = new StringTokenizer(in.readLine());
int y = 0;
// n번 반복하며 x가 y(수열 A의 데이터)보다 큰 경우, buffer에 y 값 저장
for(int i=0; i<n; i++) {
y = Integer.parseInt(st.nextToken());
if (x > y) {
out.write(y + " ");
}
}
// buffer에 저장된 데이터 출력
out.flush();
}
}