코딩 테스트/C++

입출력 시간 초과 해결

나무늘보섬 2025. 9. 16. 15:56

 

 코테 준비하면서 다양한 코드를 보던 중 

ios::sync_with_stdio(false);
cin.tie(nullptr);

 

위 2줄을 사용하는 경우가 종종 있음.

둘다 입출력의 시간을 줄여주는 함수라고 한다. 

 

 

1.ios::sync_with_stdio(false); 이란?

"c와 c++ 스타일의 코드 혼합을 허용하지 않는다"는 뜻

-> printf, scanf X, cout과 cin으로만 작성해야 된다. 

 

 

2. cin.tie(nullptr);

사용자에게 보통 cout의 문구가 출력된 후, cin으로 입력받도록 하는 것이 일반적이다.

ex) cout<< " 숫자를 입력해주세요 " <<"\n";

cin >> n;

 

그러나 백준과 같이 코테에서는 바로바로 함수의 parameter들을 입력함. 

백준 입력 예시

그래서 cout을 기다린 후에 cin으로 입력할 필요가 없다. 

자세한 설명은 아래 사진 참조

하지만 cout을 통해 cin을 입력한다고 하면 cin.tie(nullptr)을 쓰면 안됨.

 

 

정리

-> 그래서 위 2줄짜리 코드가 대량의 입력을 받을 때, 성능이 향상되어 실행 시간이 짧아지고 시간 초과 발생 X