문제/백준

[백준] 10871. X보다 작은 수 - JAVA

c-hano 2025. 5. 4. 16:02

 

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

 


조건.

 

  • 배열의 크기 N과 주어진 숫자 X가 주어진다.
  • 배열의 크기 N만큼 숫자를 입력하고 주어진 X보다 작은 숫자들을 출력해야한다.
  • 출력되는 숫자 사이에는 공백(" ")이 존재하고 마지막 출력시엔 공백(" ")을 출력하지 않아야한다.

풀이.

 

N과 X를 입력 받고 입력받은 N의 크기를 가진 배열을 만든다.

    Scanner sc = new Scanner(System.in);
    
    int a,b;
    
    a = sc.nextInt();
    b = sc.nextInt();
    
    int[] arr = new int[a];

 

다음에 입력받는 값들은 N크기의 배열에 차례로 저장되어야한다.

    for(int i = 0; i < a; i++) {
        arr[i] = sc.nextInt();
    }

 

 

저장된 배열에서 주어진 X보다 작은 숫자를 for로 하나씩 돌려서 찾고 찾은 값을 출력한다.

    for(int i = 0; i < a; i++) {
        if(arr[i] < b) { 
           System.out.print(arr[i]);
        }
    }

 

출력된 숫자 사이에는 공백이 존재해야한다. int cnt를 추가해 처음 조건을 통과하면 공백(" ")을 출력하지 않고 X보다 작은 값을 출력하기 전에 공백(" ")을 출력 후 찾은 값을 출력하게 만들었다.

    for(int i = 0; i < a; i++) {
        if(arr[i] < b) { 
            if(cnt > 0) {
                System.out.print(" ");
            }
                System.out.print(arr[i]);
            cnt++;
        }
    }

 


정답.

 

import java.util.*;

public class Main {
public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    int a,b;
    
    a = sc.nextInt();
    b = sc.nextInt();
    int cnt=0;
    int[] arr = new int[a];
    
    for(int i = 0; i < a; i++) {
        arr[i] = sc.nextInt();
    }
    
    for(int i = 0; i < a; i++) {
        if(arr[i] < b) { 
            if(cnt > 0) {
                System.out.print(" ");
            }
                System.out.print(arr[i]);
            cnt++;
        }
    }
   }
}

 


참고.

 

  • .nextInt() 값은 공백(" ")을 기준으로 값을 판단한다.

'문제 > 백준' 카테고리의 다른 글

[백준] 10951. A+B - 4 - JAVA  (0) 2025.05.05
[백준] 10950. A+B - 3 - JAVA  (0) 2025.05.05
[백준] 2530. 인공지능 시계 - JAVA  (1) 2025.05.03
[백준] 2480. 주사위 세개 - JAVA  (0) 2025.05.03
[백준] 2038 : 럭비 클럽 - JAVA  (0) 2025.04.25