[백준] 15552번 _빠른 A+B (자바)
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
✏️ 리뷰
단계별 풀이를 순차적으로 진행하다가 이 문제를 만났을 때, Scnner를 사용해서만 문제를 풀 던 나였기에.. BufferedReader 를 다시 공부해야 했다. 그래서 다시 입출력부터 풀었던 문제들을 BufferedReader로 풀면서 사용법을 익힌 후, 다시 15552번 문제를 풀게 되었다. 자신 만만하게 풀었는데, 자꾸 오류가 나고 어디가 잘못된지도 모르겠어서 어제는 풀다 열받아서 질질 끌다 결국 오늘로 미뤘다고...
그렇게 리프레쉬된 머리로 내가 짠 코드를 다시 싹 밀어버리고 풀어도 어제와 똑같은 오류가 나오길래 결국 다른 사람들의 블로그 코드를 참조하며 내가 짠 코드의 문제점을 발견...!!!!!
st = new StringTokenizer(br.readLine()," ");
int a = Integer.parseInt(br.readLine());
⬇️ StringTokenizer 사용법을 제대로 익히자...젭알.................. 무지성 코드 짜기 멈춰...
st = new StringTokenizer(br.readLine()," ");
int a = Integer.parseInt(st.nextToken());
📝 BufferedReader
BufferedReader 단점.
1. IOException의 예외처리가 필수적이다.
public static void main(String[] args)throws IOException {
2. 입력받은 모든 데이터가 String으로 반환된다.
(=split(' ')로 띄어쓰기를 구분하거나 StringTokenizer 사용하기)
3. 숫자형식으로 받기 위해서는 형변환이 필요하다.
(Integer.parseInt 사용해주기)
int cnt = Integer.parseInt(br.readLine());
💻 풀이 (BufferedReader 와 BufferedWriter 사용)
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));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int cnt = Integer.parseInt(br.readLine());
int i = 1;
while (i <= cnt){
st = new StringTokenizer(br.readLine()," ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int sum = a + b;
i++;
bw.write(sum+"\n");
}
bw.flush();
}
}