백준 도전기(빠른 A+B)

참고사이트
https://st-lab.tistory.com/30

문제
https://st-lab.tistory.com/30

> 조건

시간제한은 1.5초다. 즉 1500ms 이내여야 한다.
Scanner 사용하면 시간초과된다. 스캐너는 너무 느리다.
System.out.printn 도 사용하면 시간초과된다.

성능을 위해서 이제까지 써왔던 Scanner 대신 버퍼를 사용해야한다.

버퍼에 대해서는 따로 공부를 진행하였고,

BufferedReader 와 BufferedWriter 그리고,
빈 문자열 " "을 위해 StringTokenizer와 Split(문자열)을 사용하여 주었다.

코드

package backjun_for;
	
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
	
	
	public class for_15552 {
	
		public static void main(String[] args) throws Exception, IOException {
	
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
			
			int t = Integer.parseInt(br.readLine());
			
			StringTokenizer st;
			
			for(int i=0; i<t; i++) {
				st = new StringTokenizer(br.readLine()," ");
				bw.write((Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()))+ "\n");
			}
			br.close();
			
			bw.flush();
			bw.close();
		}
	}
    
    입출력을 버퍼로 하였고 int t(테스트케이스)의 입력을 받아 StringTokenizer(st)로 토큰화 하여 반복문 for에서 t 만큼 증가시킬때 
    입력을 t케이스만큼 더 받는다. 공백란도 포함해주자.
    
    이제 출력 bw.wirte로 문자열을 int 로 바꿔주면 된다.
   

좋은 웹페이지 즐겨찾기