이것도 빼먹었군요..
강의 중 코드에 ios::sync_with_stdio(0); cin.tie(0); cout.tie(0) 이라고 main 선언 바로 밑에 한 줄이 있을 텐데,
이 코드는 c++ 사용시 c 표준 스트림과 c++ 표준 스트림의 동기화를 없애는 코드입니다.
기본적으로 c++을 사용할 때는 ios::sync_with_stdio(true); 가 기본값이기 때문에
우리는 c 표준 스트림인 scanf, printf 와 c++ 표준 스트림인 cin, cout을 동시에 사용할 수 있습니다.
하지만 이 둘을 동시에 허용하면 당연히 시간이 느려집니다.
따라서 ios::sync_with_stdio(false = 0); 을 선언하여 cin, cout을 scanf, printf 만을 사용하는 것과 같은 시간대로 입출력을 받을 수 있게 합니다.
하지만 ios::sync_with_stdio(false) 을 사용하면 그 둘을 혼용할 수 없으니 꼭 주의하세요!
참고 : 입출력 시간 차이 -> 출력 속도 비교 (acmicpc.net)
이 부분은 아주 가끔씩 100만 이상의 입력과 출력을 할 때 유의미하게 시간 차이가 날 수 있으므로 혹시 전혀 예상하지 못한 부분에서 시간초과가 난다면 입출력 조건을 보는 것도 좋습니다!
'Koala - 2기 > 기초 강의' 카테고리의 다른 글
3. 다이나믹 프로그래밍 I (0) | 2021.01.17 |
---|---|
2. 완전탐색(백트래킹) (0) | 2021.01.12 |
1. 완전탐색(기본) (0) | 2021.01.10 |
0.1 팀블로그 글 쓰는 법 (2) | 2021.01.09 |
0. 오리엔테이션 (0) | 2021.01.09 |