알고리즘/문제

[백준] 10871번 문제: X보다 작은 수 - JAVA

Retro Rat 2026. 3. 17. 22:48

 

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

[문제]


[해설]

1. 문제 이해

이 문제는 정수 N개로 이루어진 수열 A가 주어지고, 기준값 X가 주어질 때
👉 수열 A에서 X보다 작은 값만 골라서 출력하는 문제이다.

출력 시 주의할 점은 다음과 같다.

  • X보다 작은 값만 출력해야 한다.
  • 입력된 순서를 유지해야 한다. (정렬 ❌)
  • 각 숫자는 공백으로 구분하여 출력한다.

2. 핵심 아이디어

이 문제의 핵심은 필터링 + 순서 유지이다.

  1. N개의 숫자를 하나씩 입력받는다.
  2. 각 숫자 W에 대해 W < X 조건을 검사한다.
  3. 조건을 만족하는 경우에만 결과에 저장한다.
  4. 결과는 StringBuilder를 사용하여 문자열로 누적한다.
    • 이때 숫자만 추가하면 붙어서 출력되므로 " "(공백)도 함께 추가해야 한다.
  5. 모든 입력 처리가 끝난 후 한 번에 출력한다.

👉 즉, 반복문을 통해 조건에 맞는 값만 골라서 이어붙인 후 출력하는 방식

 


[코드]

public class BeakJoon_10871 {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int X = sc.nextInt();
        
        for (int i=0; i<N; i++) {
            int W = sc.nextInt();
            if (W < X) {
                sb.append(W).append(" ");
            }
        }
        System.out.print(sb.toString());

        sc.close();
    }
}