-
백준 15552 빠른 A+B백준 (Java) 2022. 2. 4. 01:44
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.IOException; 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; int tr = Integer.parseInt(br.readLine()); for(int i=0;i<tr;i++){ st = new StringTokenizer(br.readLine()); bw.write((Integer.parseInt(st.nextToken())+Integer.parseInt(st.nextToken()))+"\n"); } bw.close(); } }
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와 System.out.println(); -> BufferedReader, BufferedWriter사용
• 기존의 두 입출력 방식에 비해 훨씬 빠른 속도로 출력 가능 (입력된 데이터가 버퍼를 거쳐 전달되므로 데이터 처리 효율성이 높아 많은 양의 데이터를 처리할 때 사용하면 좋음)
[주의]
• BufferedReader은 <Enter>만 경계를 인식하고 받은 데이터가 String으로 고정되어 입력받은 데이터를 가공하는 작업 필요
• 버퍼 사용 전 추가적인 import 필요 (Eclipse : <Ctrl> + <Shift> + <o>)
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter;
[BufferedReader 사용]
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); //String int i = Integer.parseInt(br.readLine()); //Int 변환
• 자동으로 적용되는 String을 원하는 타입으로 변환하는 과정 필요
• 예외처리 필수 - 주로 throws IOException 사용
import java.io.IOException;
- main 클래스 옆에 throws IOException 선언
public static void main(String[] args) throws IOException{}
• 입력받은 데이터는 <Enter>키를 통한 줄바꿈으로만 나눠지기 때문에 데이터 가공을 위해서는 다음의 두가지 방법이 주로 사용된다.
1) StringTokenizer / nextToken() 함수를 사용하여 입력받은 데이터를 공백 단위로 구분하여 순서대로 호출
StringTokenizer st = new StringTokenizer(s); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken());
2) String.split() 함수를 이용하여 배열에 공백 단위로 끊어 데이터를 넣음
String array[] = s.split(" ");
[BufferedWriter 사용]
• 버퍼를 잡아 놓았기 때문에 flush() / close()를 반드시 호출하여야한다.
• 출력하는 과정에서 줄바꿈이 필요하다면 \n을 통해 처리하여햐한다.
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String s = "abcde"; bw.write(s+"\n"); bw.flush(); //남아있는 데이터 모두 출력 bw.close(); //스트림 닫음
'백준 (Java)' 카테고리의 다른 글
백준 2742 1에서 N까지 거꾸로 한 줄에 하나씩 출력 (0) 2022.02.05 백준 2741 1부터 N까지 한 줄에 하나씩 출력하기 (0) 2022.02.05 백준 8393 1부터 주어진 숫자까지의 합 구하기 (0) 2022.02.04 백준 10950 입력받은 수를 반복하여 출력하기 (0) 2022.02.04 백준 2739 반복문 사용하여 구구단 출력하기 (0) 2022.02.04