#26. 백준 15552번 문제 풀이: 빠른 A+B 문제 원본 보기
빠른 속도를 요구하는 문제의 경우 입출력 속도를 빠른 방법으로 할 필요성 있다. 언어마다 입력/ 출력 하는 방법은 여러가지가 있으며, 속도와 장단점이 있다. 이번 문제는 빠른 입출력 속도를 사용해서 처리해 보자. 입력: 첫줄에 테스트케이스 T (최대 1,000,000) 다음줄 두개씩의 A B 정수 목록. (1,000 이하)
입력/출력
--입력--
5
1 1
12 34
5 500
40 60
1000 1000
--출력--
2
46
505
100
2000
문제풀이+해설
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 등을 사용하면 안된다.
code sol.
#include <iostream>
using namespace std;

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  // 입출력 속도를 위해 제한 설정
    
  int i, t, a, b;
  cin >> t; // 테스트 갯수 입력받아서 t에 대입
  for(i = 0; i < t; i++) { // 테스트 개수만큼 반복
    cin >> a >> b; // 더할 정수 두개를 받음
    cout << a + b << "\n"; // 계산값 출력
  }
}
© 코드솔 - CodeSol. All Rights Reserved.