白準挑戦記(快速A+B)

1585 ワード

コメントサイト
https://st-lab.tistory.com/30
質問する
https://st-lab.tistory.com/30

>条件


時間制限は1.5秒です.つまり、1500 ms以内でなければなりません.
スキャナを使用するとタイムアウトします.スキャナーが遅すぎます.
System.out.printnもタイムアウトします.
パフォーマンスを向上させるには、以前に使用したスキャンプログラムではなくバッファを使用する必要があります.
バッファについて単独で学習した.
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 로 바꿔주면 된다.