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가 연산처리 속도가 빠른지 원리를 설명해주는 포스팅을 올리도록 할게요..
문제 원본
728x90
반응형
'문제 풀이 > [JAVA_자바] 백준' 카테고리의 다른 글
[JAVA / 자바] 백준 1110번 - 더하기 사이클 (0) | 2021.12.04 |
---|---|
[JAVA / 자바] 백준 10951번 - A+B(4) (0) | 2021.12.03 |
[JAVA / 자바] 백준 2753번 - 윤년 (0) | 2021.12.01 |
[JAVA / 자바] 백준 9498번 - 시험성적 (0) | 2021.11.30 |
[JAVA / 자바] 백준 2884번 - 알람시계 (0) | 2021.11.29 |