빠른 속도를 요구하는 문제의 경우 입출력 속도를 빠른 방법으로 할 필요성 있다.
언어마다 입력/ 출력 하는 방법은 여러가지가 있으며, 속도와 장단점이 있다.
이번 문제는 빠른 입출력 속도를 사용해서 처리해 보자.
입력: 첫줄에 테스트케이스 T (최대 1,000,000)
다음줄 두개씩의 A B 정수 목록. (1,000 이하)
문제풀이+해설
C++ :
cin.tie(NULL); sync_with_stdio(false); 적용.
이렇게 하면 기존 C언어용 함수(scanf, printf, puts..)를 사용하면 안된다.
endl 대신 개행문자(\n) 사용. endl 은 버퍼를 비우는 과정때문에 조금 더 느리다.
JAVA :
Scanner, System.out.println 대신 BufferredReader 와 BufferedWrite 사용
Python :
input 대신 sys.stdin.readline() 사용. 개행문자 제거를 위해 .rstrip() 사용.
C/C++ 에서 scanf 나 printf 를 사용하면 속도가 그리 느리지 않다.
만약 반복되는 입출력에 cin, cout 을 사용한다면 속도 지연이 발생한다.
그럴 경우, 기능을 제한해서 속도를 높여준다.
ios_base::sync_with_stdio(false);
cin.tie(NULL);
를 선언하면, scanf, printf 와 연계된 사용이 중지 되기 때문에 속도는 빨라지지만 scanf, printf 등을 사용하면 안된다.