동기의 이것저것
article thumbnail
728x90

백준 문제를 풀다보니 입력을 받을 때 Scanner 사용보다 BufferedReader 사용할 때 더 빠르다!

버퍼를 사용하는 BufferedReader는 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송하고 가득차거나 개행 문자가 나타나면 버퍼의 내용을 한번에 전달한다

 

버퍼를 사용하는 입력은 바로 프로그램에 전달된다.

 

키보드에 입력을 할때마다 바로 전달하는 것보다는 중간에 버퍼를 두어 한번에 보내는 것이 더 효율적이고 빠르다!

 

하지만 입력을 받는 것이 몇 개 없다면 Scanner가 훨씬 편하다!

nextInt(), next(), nextLine() 3개로 String을 int으로 변환하지 않아도 쉽게 입력 받을 수 있다.

 

BufferedReader 사용법을 알아보겠다.

 

일단 1개의 숫자를 입력 받아 볼 것이다.

<java />
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine());

위와 같이 정수로 변환해주어야 한다.

 

이번에는 숫자 N를 입력 받고 한 줄에 N만큼의 숫자를 입력받아 볼 것이다.

<java />
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()); //() 안에 (input , " ") 와 같이 공백을 기준으로 읽을 것인지 지정해 줄 수 있다, 공백이 기본 값 for(int i = 0; i < N; i++){ System.out.println(st.nextToken()); }
<shell />
입력 3 1 2 3 출력 1 2 3

StringTokenizer를 사용하면 공백 문자를 기준으로 읽는다.

728x90
반응형
profile

동기의 이것저것

@U_motivation

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!