코딩왕랄프👊🏻

[백준] 15552번 : 빠른 A+B 본문

카테고리 없음

[백준] 15552번 : 빠른 A+B

hyerm_2 2021. 5. 18. 13:40
반응형
SMALL

1552번 LINK

 

문제 정리

입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.

[C++] => cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 

[Java] => Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.

[Python] =>  input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.

 

전략

시간 제한이 있으므로, Java의 경우 BufferedReader와 BufferedWriter를 사용하자!

 

느낀점

 

익숙히 쓰던 입출력 구문(Scanner와 System.out.println) 대신 새로운 입출력 기능 함수를 배워서 신기했다.

같은 입출력 기능을 함에도 소요되는 시간이 다르다니,, 

같은 기능이더라도 다양한 함수들을 접해보자!

코드

import java.util.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.*;


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 n=Integer.parseInt(br.readLine()); // 한번에 읽어들여 정수로 변환하는 과정
     
		for(int i=0;i<n;i++) {
			st=new StringTokenizer(br.readLine()," "); // 띄어쓰기를 기준으로 값들을 나눔
			bw.write((Integer.parseInt(st.nextToken())+Integer.parseInt(st.nextToken()))+ "\n"); //출력
		}
		
		br.close();
		bw.flush();
		bw.close();

	}
}

 

 

반응형
LIST