코딩 기록 저장소

[백준/Java] 10871번: X보다 작은 수 본문

백준/1차원 배열 (완료)

[백준/Java] 10871번: X보다 작은 수

KimNang 2023. 5. 4. 07:49

문제 정보

제목 : X보다 작은 수

번호 : 10871번

사용 언어 : Java

문제 링크

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

 

10871번: X보다 작은 수

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

www.acmicpc.net

 

시간 제한 메모리 제한
1 초 256 MB

 

문제

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

 

입력

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

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

 

출력

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

 

입출력 예제


나의 풀이

BufferedReader을 이용해 한줄을 입력받아 StringTokenizer을 이용해 Token 단위로 구분합니다. N과 X를 선언하여 Token 값을 정수형으로 형변환하여 저장합니다. 정수형 배열도 N의 길이로 선언합니다. 한줄을 더 입력받아 Token 단위로 구분한 후 N만큼 반복하는 for루프를 생성하여 처음에는 배열에 Token 값을 정수형으로 변환하여 저장합니다. 두번째 for 루프는 if문을 이용해 num[i]와 X를 비교해 더 작으면 출력합니다.

 

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
   
   public static void main(String[] args) throws IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      StringTokenizer st = new StringTokenizer(br.readLine());
      int N = Integer.parseInt(st.nextToken());
      int X = Integer.parseInt(st.nextToken());
      int[] num = new int[N];
      
      st = new StringTokenizer(br.readLine());
      
      for(int i =0;i<N;i++)
      {
    	  num[i] = Integer.parseInt(st.nextToken());
      }
      
      for(int i =0;i<N;i++)
      {
    	  if( num[i] < X ) {
    		  bw.write(num[i] + " ");
    	  }
      }
      
      bw.flush();
      bw.close();
      br.close();
   }   
}