알고리즘/C++
c++ cin, cout 왜 시간초과?
셉인
2023. 7. 19. 22:50
728x90
시간 초과 날 일이 없는데 시간초과가 났다..
왜 났을까?
근데 해결법을 보니깐 scanf랑 printf를 쓰면 된다고 한다
근데 또 c++을 쓰는데 그걸 쓰면 무의미해진다고 생각했다..
그러던 중 스터디에서 코드 넣었던게 생각이 났고 그걸 쓰니깐 시간초과가 해결됐다.
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
이 코드이다.
일반적으로 #include <iostream> 에서 scanf, printf, cin, cout을 다 지원하는데 std인 cin, cout은 scnaf, printf보다 속도가 느리다 그래서 그냥 시간초과가 날 수 있다. 그런데 저 코드를 넣으면 scanf, printf를 못쓰는 대신 cin, cout이 scanf,printf보다 속도가 빠르게 바껴 cin, cout을 써도 시간초과가 나지 않는다.
이를 유의해서 코드를 작성해야하며, c++로 알고리즘 짜는 사람에겐 필수적인 요소인 것이라고 할 수 있다.
728x90