본문 바로가기
Computer Science/PS

[PS] 15552. 빠른 A+B

by BrickSky 2023. 12. 19.

1) 문제: 15552. 빠른 A+B

 

 

2) 나의 첫 풀이

ios::sync_with_stdio(0); 함수란?

기본적으로 C++ 표준 라이브러리는 C 스타일의 입출력 함수(printf, scanf)와 C++ 스타일의 입출력 스트림(cout, cin)을 동기화한다.

해당 라이브러리는 편리하지만, 입출력 속도가 중요한 경우에는 성능 저하를 일으킬 수 있다는 문제점이 존재한다.

 

하지만, ios::sync_with_stdio(0);는

C++ 표준 입출력 스트림과 C 입출력 함수를 동기화하지 않도록 한다. 즉, C++의 cin, cout 등을 사용할 때 내부적으로 C 입출력 버퍼와 동기화하지 않게 되어 빠른 입출력을 가능하게 한다.

 

cin.tie(0); 란?

cin.tie(0);는 C++ 스타일의 입출력 스트림을 C 입출력 버퍼와 untied(독립적) 상태로 만든다.

이는 C++의 입출력 스트림이 내부적으로 C 입출력 버퍼와 독립적으로 동작하도록 한다. 따라서 C++의 입출력 스트림이 버퍼를 자주 비우지 않아도 되기 때문에 입출력 성능을 향상할 수 있다.

 

 

#include <iostream>
using namespace std;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    
    int T;
    cin >> T;
    
    for(int i=0; i<T; i++){
        int A,B;
        
        cin >> A >> B;
        cout << A + B << '\n';
    }
}

 

 

3) 배운 점: ios::sync_with_stdio(0); 와 cin.tie(0); 

바킹독 답안을 보니 모든 코드에

ios::sync_with_stdio(0);와 cin.tie(0);가 포함되어있다. 앞으로도 사용하자!!

 

'Computer Science > PS' 카테고리의 다른 글

[ps] cout << fixed; 와 cout.precision(1)  (0) 2024.01.02
[PS] 별 찍기 모음  (0) 2023.12.24
[PS] 10804. 카드 역배치  (1) 2023.12.18
[PS] 1267. 핸드폰 요금  (0) 2023.12.17
[PS] 10093. 숫자  (0) 2023.12.16