본문 바로가기
카테고리 없음

[백준] 10871 X보다 작은 수

by 코딩맛집 2023. 4. 25.

https://www.acmicpc.net/problem/10871

 

10871번: X보다 작은 수

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

www.acmicpc.net

 

방법1

배열과 BufferedReader 사용

- BufferedReader가 Scanner보다 성능이 좋다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class SmallNumber {
	public static void main(String[] args) throws IOException{
		//첫 번째 
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st1 = new StringTokenizer(br.readLine());
		StringBuilder sb = new StringBuilder();
		int n = Integer.parseInt(st1.nextToken());
		int x = Integer.parseInt(st1.nextToken());
		
		//두 번째 줄
		StringTokenizer st2 = new StringTokenizer(br.readLine());
		int[] arr = new int[n];
		
		for(int k=0; k<n; k++) {
			arr[k] = Integer.parseInt(st2.nextToken());
		}
		
		for(int i=0; i<n; i++) {
			if(arr[i]<x) {
				sb.append(arr[i] + " ");
			}
		}
		System.out.println(sb);
        br.close();
	}

}

 

방법2

scanner 사용과 배열을 사용하지 않은 코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = sc.nextInt();
		
		StringBuilder sb = new StringBuilder();
		
		for(int i=0; i<n; i++) {
			int value = sc.nextInt();
			
			if(value < x) {
				sb.append(value).append(' ');
			}
		}
		
		System.out.println(sb);
		sc.close();
	}
}