포스트

[Java] Baekjun No. 15552 - Fast A+B

We have compiled a solution using BufferedReader, StringTokenizer, and BufferedWriter for fast input/output in Java.

한국어 원문은 여기에서 볼 수 있습니다.
[Java] Baekjun No. 15552 - Fast A+B

BaekJoone 15552

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.io.*;
import java.util.StringTokenizer;

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));
        
        int n = Integer.parseInt(br.readLine());
        
        for(int i=0; i<n; 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();
        
    }
}

많은 수의 입력과 출력이 있을 때 in Java

  • In Java, it is better than the previously used Scanner and System.out.print.
  • Better to use BufferedReader + StringTokenizer + BufferedWriter

    BufferedReader (input)

  • Read one line quickly
  • Use: import java.io.*;
  • Default: BufferedReder br = new BufferedReader(new InputStreamReader(System.in));
  • One line input: String s = br.readLine(); -> string
  • Convert to number: int n = Integer.parseInt(br.readLine());

    StringTokenizer (Split)

  • Faster than split(), whitespace-based separator
  • Use: import java.util.StringTokenizer;
  • Default: StringTokenizer st = new StringTokenizer(br.readLine());
  • Split: int a = Integer.parseInt(st.nextToken());

    BufferedWriter (output)

  • Print quickly
  • Use: import java.io.*;
  • Default: BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
  • Output: bw.write("hello\n"); -> Only strings are allowed in write()
  • Finalization (required): bw.flush(); bw.close(); -> Use only one last time
    Why can a+b, not a string, be entered in write() in the above code?
  • In Java, "문자열" + 숫자 is treated as 문자열, so it can be used because it is converted to a string through "\n"

import java.io.*

  • Import input/output related classes at once ex) BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter