문제 풀이/[JAVA_자바] 백준

[JAVA / 자바] 백준 15552번 - 빠른A+B

Seunghyun_KO 2021. 12. 2. 09:00
728x90
반응형

문제

입력되는 두 수를 더하여 출력하는 코드를 작성하시오.

이때, Scanner와 System.out.println을 사용하면 시간제한에 걸리므로 대신 BufferedReader BufferedWriter를 사용하여 작성하시오.


입력

첫 줄에 테스트 케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T 줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.


출력

각 테스트 케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.


입출력 예시


문제 접근 방법

단순히 두 수를 더하여 출력하면 되는 문제이지만, 시간제한이 짧게 걸려있어 BufferedReader BufferedWriter를 사용하여 코드를 구성해주어야 한다.


JAVA 코드 풀이

import java.io.*;
import java.util.*;

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;
        
        int num = Integer.parseInt(br.readLine());
        int n1=0, n2=0, ans=0;
        
        for(int i=0; i<num; i++){
            st =  new StringTokenizer(br.readLine());
            n1 = Integer.parseInt(st.nextToken());
            n2 = Integer.parseInt(st.nextToken());
            bw.write(n1+n2+"\n");
        }
        
        bw.close();
    }
}

코드 실행 결과


후기

Scanner와 System.out.println함수가 사용하는 데에는 편리하지만 느리다는 단점이 있다. 반면에 BufferReader나 BufferWriter함수는 사용하기는 조금 번거로울 수 있어도 속도측면에서 Scanner함수보다 훨씬 빠른 연산속도를 보여준다. 입출력을 Scanner와 System.out.println함수만 생각할 것이 아니라 BufferReader와 BufferWriter함수도 공부해두어 나중에 사용할 수 있도록 해놓아야겠다는 생각이 든다.

PS. 차후 게시글에 왜 Scanner보다 BufferReader가 연산처리 속도가 빠른지 원리를 설명해주는 포스팅을 올리도록 할게요..


문제 원본

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

728x90
반응형