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