습관처럼

C++ - 입출력 효율성 증가시키는 방법 본문

Language/C++

C++ - 입출력 효율성 증가시키는 방법

dev.wookii 2020. 3. 30. 18:42

저는 보통 알고리즘을 풀 때 시간 복잡도를 제외하고 시간 초과가 발생하는 경우가 가끔 있는데 오늘은 이러한 점을 잠깐이라도 해결할 수 있는 방법을 알려드리도록 하겠습니다.

 

가장 먼저 C++ 에서 cout, cin 입출력은 printf, scanf 보다 효율성이 좋지 않습니다. 또한 소수 같은 경우 몇 번째 자리까지 표현을 해야 한다 라고 할 때 printf, scanf를 이용하는 것이 편할 것입니다.

 

하지만 일반적으로 코딩 테스트나 알고리즘을 혼자 풀어볼 때 빠르게 풀기 위해 저는 cin, cout를 이용하는 경우가 많습니다. 물론 경우에 따라서 바꿔가며 쓰는 것이 좋습니다 ^0^b 

 

그렇다면 입출력에는 문제가 없지만 시간 초과가 발생하는 경우 다음 방법을 쓰면 조금이나마 입출력의 효율성을 증가시킬 수 있을 것입니다.

 

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

ios_base:: 는 기본적으로 cout에서의 다양한 기능을 제공하기 위해 앞에 쓰이는 접두어 같은 것입니다. 이후 cin.tie, cout.tie에 NULL을 넣어주고 실행을 시키면 완성입니다. ~ 쉽죠~ 외워두시면 편리하게 사용할 수 있습니다.!!

 

 

'Language > C++' 카테고리의 다른 글

C++ - vector 초기화  (0) 2020.04.13
C++ - 형변환  (0) 2020.04.05
소수 구하기 (에라토스테네스의 체)  (0) 2020.03.19
C++ - Array Size  (0) 2020.03.04
C++ - 범위 기반 for문 (feat: range based for statement)  (0) 2020.03.04