HoonK212 GitHub_Blog

[오늘의 백준] 2번째

“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();
	}
}