만능재주꾼

[C++] Fast I/O로 입출력하기 본문

💻 Programming/C++

[C++] Fast I/O로 입출력하기

유고랭 2021. 3. 20. 03:35

백준 18258번을 풀고 제출했는데 시간 초과가 떠서 당황스러웠다.

cin으로 입력받고, cout으로 출력하고, endl 개행문자 쓰면 시간 잡아먹을까봐 '\n'를 썼는데도 시간 초과였다.

당황스러웠지만 일단 해당 문제의 질문을 봤다.

근데 그 게시판을 보니까 나처럼 시간 초과가 난 사람들이 많았다.

거기에 있는 질문을 하나 봤는데 그냥 cin,cout를 쓰는 것 보다 더 빠르게 출력할 수 있는 방법이 있었다!!

지금부터 그 방법을 소개하겠다💪🏻


  • cin, cout가 느린 이유: C의 입출력버퍼와 C++의 입출력 버퍼를 동기화시켜야 하기 때문

⭐️ 해결방법

#include <iostream>
#include <queue>

using namespace std;

/* void init()함수 작성 */
void init(){
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(false);
}
int main(){
    init(); //main함수에 init()추가
    int n;
    cout << "숫자입력: ";
    cin >> n;
    cout << n << "을 입력했습니다.\n";
}

위의 코드를 참고하여 자신의 코드에 적용하면 된다!

Comments