본문 바로가기

study/baekJun

[백준/JAVA/for문]백준10871 X보다 작은 수

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

이번 문제는 N개의 수열 A에서 입력한 X보다 작은 수를 출력해주는 문제이다.

여기서는 for문으로 입력과 출력을 해주었고

출력 for문안에 if문을 넣어 숫자를 걸러주었다

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

public class qn10871{
   public static void main(String[] args) throws IOException{
      BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //콘솔에서 입력받을 경우
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      //String s = bf.readLine(); //String(보통 선언할때)
      //int T = Integer.parseInt(bf.readLine());
      
      String input = bf.readLine(); //A랑 X입력
      String [] word = input.split(" ");
      int a = Integer.parseInt(word[0]);//a=A
      int b = Integer.parseInt(word[1]);//b=X
      
      String array = bf.readLine(); //수열입력
      String [] numArray = array.split(" ");
      for(int i=0;i<a;i++){
      
      int num = Integer.parseInt(numArray[i]); //배열에 입력한 수열 넣기
      if(num<b){
         bw.write(numArray[i]+" ");
      }
      }
      
      
      bw.flush();
      bf.close();
      bw.close();
   }
}

이때 수열을 출력해줄때

bw.write(num+" ");을 하면 에러가 뜨는데

이유는..나도 모른다..아마 bufferedWrite가 String전용인데

int를 출력해주려고 해서 에러가 뜬 듯하고

애초에 String배열로 선언했던 numArray를 출력해주니

원하는 결과가 나올 수 있었다

 

이제는 while 시작이다 ㅎㅎ