백준 문제풀이

[백준] JAVA로 백준 입력 받는 방법

늦깍이 2022. 9. 14. 12:40
scanner 보다 BufferedReader가 빠르기 때문에 필자는 BufferedReader만 쓴다.

     BufferedReader

    백준 문제풀이를 할때, 처음에 제일 어려웠던 건 입력 받는 방법 자체였다.

    그렇기 때문에 BufferedReader를 통해 어떻게 입력을 받을 수 있는지 정리해보자.


    import 해야하는 것들

// 기본적으로 import 해야하는 패키지들
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
// 공백을 기준으로 한 줄을 나눠서 받고 싶을 때
import java.util.StringTokenizer;

     main

public static void main(String[] args) throws IOException {}

    throws IOException을 반드시 넣어주자.


     readline()

    readline()을 통해 한 줄씩 읽는게 가능하다.

  • 문자열을 입력받을 경우
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readline();
  • 숫자를 입력받을 경우
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int number = Integer(parseInt(br.readline()));
  • 공백으로 한 단어씩 받는 경우
    StringTokenizer(br.readline(), n)를 통해 읽어온 한 줄을 n을 기준으로 나누어 읽게 해준다.
    nextToken()은 StringTokenizer에서 다음 토큰을, 즉 다음 입력을 가져오는 메소드이다.
    hasNextTokens()은 다음 토큰이 있으면 True, 없으면 False를 반환해주는 메소드이다.(한 줄에 여러개를 입력해서 여러개를 입력 받으려고 할 때 while(st.hasNextTokens())를 사용하면 편하다.)
int[] targetArray = new int[100];
st = new StringTokenizer(br.readline(), " ");
for(int i = 0; i < M; i++){
    targetArray[i] = Integer.parseInt(st.nextToken());
}

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

[백준] 2164번 카드2 [JAVA]  (0) 2022.09.14
[백준] 1158번 요세푸스 문제 [JAVA]  (0) 2022.09.14
[백준] 10845번 큐 [JAVA]  (0) 2022.09.13
[백준] 9012번 괄호 [JAVA]  (2) 2022.09.13
[백준] 10828번 스택 [JAVA]  (0) 2022.09.13