문제
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
출력
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
제출 답안
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(); // 기준이 되는 정수 X
int[] A = new int[N]; // 정수 N개로 이루어진 수열 A
for(int i=0; i<N; i++){
A[i] = sc.nextInt();
if (A[i] < X){
System.out.print(A[i] + " ");
}
}
sc.close();
}
}
- 매번 Scanner로 입력받다가, 속도면에서는 BufferedReader가 낫길래 처음으로 답변 제출을 해봤는데 수차례 틀렸다.
- 그래서 아래 블로그에서 힌트를 얻었다.
- https://st-lab.tistory.com/38
[백준] 10871번 : X보다 작은 수 - JAVA [자바]
https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000
st-lab.tistory.com
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int X = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) {
int value = Integer.parseInt(st.nextToken());
if (value < X)
sb.append(value).append(' ');
}
System.out.println(sb);
}
}
'문제 풀이 > 알고리즘 풀이' 카테고리의 다른 글
[백준/2562번/JAVA] 최댓값 (0) | 2023.08.30 |
---|---|
[백준/10871번/JAVA] 최소, 최대 (0) | 2023.08.29 |
[백준/10952번/JAVA] A+B - 5 (0) | 2023.08.25 |
[백준/10807번/JAVA] 개수 세기 (0) | 2023.08.25 |
[백준/2439번/JAVA] 별 찍기 - 2 (0) | 2023.08.24 |