열정 실천

백준 2845 - 파티가 끝나고 난 뒤 [JAVA] [BufferedReader 사용법] 본문

개발 공부/백준 문제풀이

백준 2845 - 파티가 끝나고 난 뒤 [JAVA] [BufferedReader 사용법]

구운오니 2022. 6. 29. 00:57

<전체코드>

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

public class Main {
    public static void main (String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        String line = br.readLine();
        StringTokenizer st = new StringTokenizer(line, " ");
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        
        String line2 = br.readLine();
        st = new StringTokenizer(line2, " ");
        
        int[] arr = new int[5];
        for (int i=0; i<arr.length; i++){
            arr[i] = Integer.parseInt(st.nextToken());
        }

        int c = a*b;
        for (int i = 0; i<arr.length; i++){
            System.out.print(arr[i]-c + " ");
        }


    }
}

 

 

[BufferdReader 사용법]

 

원래 자바에서 입력을 받을 때 Scanner를 주로 사용했지만, 

백준 문제를 풀 때 프로그램 시간을 줄이기 위해 BufferedReader를 사용한다!!

위의 코드에서 BufferdReader를 사용한 코드를 예로 들어 보자

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String line = br.readLine();
StringTokenizer st = new StringTokenizer(line, " ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());

1번째 줄 : BufferedReader의 객체를 생성

3번째 줄 : 객체를 사용하여 문자열 입력 받기

4번째 줄 : StringTokenizer 객체 생성 : (line, " ") 1번째 매개변수의 문자열을 " "(띄어쓰기)을 기준으로 분할

5번째 줄 : 문자열의 첫 번째 토큰 저장

6번째 줄 : 문자열의 두 번째 토큰 저장

 

만약에 입력이 3 10 이라면 a는 3이, b는 10이 된다.