본문 바로가기
Algorithm

[백준/java]빠른 A+B 15552번

by jyee 2024. 1. 18.
728x90
반응형

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

 

15552번: 빠른 A+B

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

www.acmicpc.net

 

 

이 문제는 계속 했던 것처럼 Scanner를 이용해서 했었는데 분명 원하는 답이 나왔는데 시간초과로 실패라고 떴었다

//scanner 이용 하지만 실패...
import java.util.Scanner;


public class boj15552 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();

        for (int i = 0; i < T; i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.println(a+b);
        }
    }
}

왜지... 했는데 이미 문제의 첫 번째에서 답을 알려주고 있었다. 입출력방식이 느리면 시간초과가 날 수 있다는 점!

 

그래서 아래 두 가지를 써야 한다. 

BufferedReader

:Scanner와 유사.

Bufferedwriter

:System.out.println();과 유사

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


public class boj15552_2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int T = Integer.parseInt(br.readLine()); 
        for (int i=0; i<T; i++){
            StringTokenizer st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            bw.write(a+b+"\n");
        }
        bw.flush();
        bw.close();
    }
}

 

 

728x90
반응형