'백준 10871 자바'에 해당되는 글 1건

X보다 작은 수

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 365800 200283 160637 54.268%

문제

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)

둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

출력

X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.

예제 입력 1 복사

10 5
1 10 4 9 2 3 8 5 7 6

예제 출력 1 복사

1 4 2 3

 

 


문제 자체는 입력으로 주어지는 배열에서 X값보다 작은 수를 찾아 출력하면 되는 간단한 문제이다.

 

다만 입력을 조금 귀찮게 받도록 되어있다.

 

두줄로 나뉘어서 받아야 한다 :

첫 번째 줄배열의 크기, 그리고 배열의 요소와 비교할 X 값을 준다.

두 번째 줄은 배열에 들어갈 정수 N개가 주어진다.

 

입력될 수 있는 값의 개수(  1 ≤ N, X ≤ 10,000 )가 많다고 판단되어 

BufferedReader를 사용하기로 했다.

그리고 받아진 값들이 공백으로 구분되기 때문에 StringTokenizer를 활용하기로 하였다.

 

import java.io.*;
import java.util.StringTokenizer;
public class Main {
    public static void main(String[] args) throws Exception{
    	// BufferedReader를 사용하여 input을 받기로 함.
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 한줄로 결과를 출력하기 때문에 StringBuilder를 사용하여 출력할 문자열을 준비.
        StringBuilder sb = new StringBuilder();
        
        // 첫 번째로 들어오는 배열의 크기와 X값을 받아준다.
        StringTokenizer st = new StringTokenizer(br.readLine());
  		
        // 배열의 크기에 맞춰 배열 초기화
        int[] a = new int[Integer.parseInt(st.nextToken())];
        // X값 저장
        int b = Integer.parseInt(st.nextToken());
        // 배열에 들어갈 N개의 정수를 받아서 저장
        // 이때 전에 사용했던 st를 덮어씌워 사용한다.
        st = new StringTokenizer(br.readLine());
        // 배열의 길이만큼 반복
        for(int i=0; i<a.length; i++){
        	// 배열에 요소 할당
            a[i] = Integer.parseInt(st.nextToken());
            // 할당과 동시에 X값과 비교하여 그 크기가 X보다 작다면 
            // StringBuilder sb에 추가
            sb.append(a[i]<b ? a[i] + " " : "");
        }
        
        // 출력
        System.out.println(sb);
    }
}

 

블로그 이미지

Ahan

책, 영화, 게임! 인생의 활력 요소가 되는 취미들을 하자!

,