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
[ 문제 조건 ]
[ 정답 ]
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 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();
}
}
BufferedReader 와 BufferedWriter 를 사용하는 것에 익숙하지 않았다.
아래 참고자료에서 강의들은 내용을 토대로하여 코드의 순서대로 정리해보자!!!
( 확실하지 않을 수 있음 )
1.
BufferedReader 객체를 만들어 InputStreamReader 에 입력한 값을 읽는다.
쉽게 말하면 br 의 역할은 , Scanner sc = new Scanner(System.in); 에서 sc 의 역할이다.
2.
bw 의 역할은 System.out.print() 같은 것이다.
br 로 읽어들인 값을 실제로 써서 보여주겠다는 것 같다.
3.
br 에서 입력받은 값은 String 이므로 int 로 캐스팅해준다.
4.( for 문)
문제 예시에서 보면 처음 입력받을 횟수(br) 를 정하고,
A+B 를 수행할 값 2개(a,b) 가 필요하다
이때 각각의 수는 StringTokenizer 로 읽어들인다.
마찬가지로 String 값이기 때문에 int 로 캐스팅해주고, bw.wirte() 객체로 작성한다.
이때, 줄바꿈을 위해 "\n" 을 직접 추가한다.
5.
bw.write() 로 쓰여진 값은 쓰여지기만 했지 출력하는 것이 아니다.
따라서 bw.flush() 를 통해 출해주고 , 사용한 것들을 close() 로 닫아준다.
아직 개념이 명확하진않고 그렇구나~ 싶지만 계속 사용하다보면 System.out.println() 처럼 자연스레 작성할 수 있을 것이다 !!!
테스트 케이스가 많은경우 BufferedReader 와 BufferedWriter 를 사용하여
입력값과 출력값을 더욱 빠르게 연산할 수 있다.
[ 참고 자료 ]
https://www.youtube.com/watch?v=sPi6Hr4-rPg
'코테연습 > 백준' 카테고리의 다른 글
BAEKJOON | 최댓값 JAVA (0) | 2024.01.26 |
---|---|
BAEKJOON | 5597 과제 안 내신 분..? Java (0) | 2024.01.24 |