Programing/백준, 프로그래머스(C++)

[C++] 입출력 속도 줄이기(시간초과 해결법)

hye3193 2025. 1. 1. 17:05

C++로 코딩테스트 문제 풀이 시 실행 시간을 단축하는 방법들

 

ios::sync_with_stdio(false);

C와 C++의 동기화를 비활성화시키는 코드로, 기본적으로 동기화가 활성화되어 있을 때는 C에서의 입출력과 C++의 입출력을 혼용해도 관계없다. 하지만 동기화를 비활성화시키면 동기화 과정에서 소요되는 시간이 절약되어 입출력 속도를 줄일 수 있다.

단, 동기화를 비활성화 시키게 되면 C의 입출력(scanf, printf 등)은 사용할 수 없고 C++의 입출력인 cin과 cout만 사용 가능하다

(속도 비교: 동기화 비활성화 후 cin/cout 사용 > C의 입출력 사용 > cin/cout 사용)

 

cin.tie(0);
cin.tie(null);

* 둘 중 하나만 사용하면 됨

본래는 cout 뒤에 cin이 위치했을 때, cout 먼저 실행된 후 입력을 할 수 있는데, 묶어주는 과정을 수행하지 않으면 cout 되기 전에 입력이 가능해 진다

 

cout << a << '\n';

개행 시 endl 대신 '\n'을 사용하면 시간이 절약된다