규도자 개발 블로그

[백준/10871/자바(Java)] X보다 작은 수 본문

알고리즘/풀이

[백준/10871/자바(Java)] X보다 작은 수

규도자 (gyudoza) 2018. 9. 18. 23:44

문제

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)

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

출력

X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.

입출력 예

입력출력
10 5
1 10 4 9 2 3 8 5 7 6
1 4 2 3

풀이

import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
 
class Main {
  public static void main(String[] args) throws IOException {
    Scanner scan = new Scanner(System.in);
    int a = scan.nextInt();
    String result = "";
    if(!((1<=a)&&(a<=10000))) {
      System.exit(0);
    }
    int b = scan.nextInt();
    if(!((1<=b)&&(b<=10000))) {
      System.exit(0);
    }
    ArrayList<Integer> list = new ArrayList<Integer>();
    for(int i = 0; i < a; i++) {
      list.add(scan.nextInt());
    }
    for(int i = 0; i < a; i++) {
      if(list.get(i)<b) {
        result += list.get(i)+" ";
      }
    }
    System.out.print(result.trim());
  }// end of main
}

설명

일단 첫번째로 입력 받는 조건의 숫자를 각각 배열의 길이, 조건이 되는 숫자로 구분한다. list에 입력한 숫자들이 저장되면 반복문으로 해당 배열을 순회하며 조건보다 낮은 숫자만을 result라는 문자열에 붙여서 출력하면 되는 문제이다.

Comments