[c++] cin cout VS scanf printf

강신현·2022년 1월 28일

차이

cin 과 cout를 쓰다보면 백준에서 시간초과 오류가 날 때가 있다.
scanf 와 printf에 비해서 속도가 느리기 때문이다.

하지만 cin cout이 비교적 최신에 나온만큼 안전성, 확장성 등에서는 더 뛰어나다고 한다.

그렇다면 백준과 같은 코딩테스트에서는 속도가 빠른 scanf 와 printf를 써야 하는 걸까?

다행이 편리한 cin cout을 속도 걱정 없이 쓸 수 있는 방법이 있다.

대처법

버퍼 동기화를 끊고 tie를 풀어줌으로써 속도를 향상시킬 수 있다.
(버퍼 동기화를 끊은 경우, scanf printf을 cin cout 과 같이 쓸 수 없다.)

main 함수에 다음과 같은 코드를 추가해주면 해결!

ios_base::sync_with_stdio(false);
cin.tie(NULL);

Reference

https://where-i-am.tistory.com/entry/C-%EA%B8%B0%EB%B3%B8-%EC%9E%85%EC%B6%9C%EB%A0%A5-cin-cout-scanf-printf

profile
땅콩의 모험 (server)

0개의 댓글