[C++] cin, cout 시간초과 문제 해결하기

leeeha·2021년 9월 23일
0

C++

목록 보기
5/7

https://wondangcom.com/631
https://algospot.com/forum/read/2496/

  1. ios::sync_with_stdio(false);
    ios::sync_with_stdio는 cpp의 iostream을 c의 stdio와 동기화 시켜주는 역할을 한다. 이때 iostream, stdio의 버퍼를 모두 사용하기 때문에 딜레이가 발생할 수 있다. 따라서 옵션을 false로 해줘야, c의 stdio와의 동기화가 해제되면서 c++만의 독립적인 버퍼를 사용하게 되고 실행 속도가 더 빨라진다.

  2. cin.tie(NULL);
    기본적으로 cin은 cout에 묶여 있어서 cin에서 입력 작업을 수행하기 전에 항상 flush가 호출되어 작업 부담이 커진다. 따라서 실행 속도를 높이려면, tie(NULL)로 설정해 cout과의 바인딩을 해제해야 한다.

  3. cout에서 endl을 사용하는 것보다 개행문자 '\n'을 사용하는 것이 좋다. endl은 개행문자를 출력하면서 출력 버퍼를 비우는 역할까지 수행하기 때문에 속도가 느리다.

profile
Keep Going!

0개의 댓글