반응형

주어진 입력값 2개를 더해만 주면 되는 간단한 문제이지만
시간초과의 중요성을 알려주는 문제이다
시간초과를 막기위해선 2가지 명령을 알아야한다
우선 C++에서는 printf/scanf와 cin/cout을 혼용해서 사용하는 것이 가능하다
기본적으로 printf/scanf를 담고있는 C stream과 cin/cout을 담고있는 C++ stream을 동기화하고있다
그런데 cin/cout만 쓸거면 굳이 C stream을 동기화를 할 필요가 없다
그래서 그 동기화를 끊어줄 때 사용하는 명령이
ios::sync_with_stdio(0); 이다
동기화를 끊어주고부터는 printf/scanf를 사용해선 안된다
두번째는 cin.tie(0)인데 이 명령은 cin 명령을 수행하기 전 cout의 버퍼를 비워주지 않는 명령이다
기본적으로는 cin 명령을 수행하기 전 cout 버퍼를 비워줘서
입력과 출력이 원활하게 console 창에 보이도록 해준다
하지만 백준같은 온라인 저지 사이트에서는 출력부분만 확인하기때문에
입력과 출력이 꼬이더라도 문제가되지 않는다.
그렇기때문에 굳이 cin 명령 전 cout 버퍼를 비울 필요가 없는 것이다
그 명령이 바로 cin.tie(0)이다
참고로 줄바꿈을 할 때는 endl 보다는 개행문자("\n")을 사용하는 것이 더 효율적이다
#include <iostream>
using namespace std;
int main() {
cin.tie(0);
ios::sync_with_stdio(0);
int a,x,y;
cin >> a;
for (int tmp=0; tmp<a; tmp++)
{
cin >> x >> y;
cout << x+y << "\n";
}
return 0;
}
반응형
'algorithm > 기초 코드' 카테고리의 다른 글
| [algorithm] 백준 2562번 최댓값 (0) | 2025.10.25 |
|---|---|
| [algorithm] 백준 2438번 별찍기 - 1 (0) | 2025.10.25 |
| [algorithm] 백준 10804 카드 역배치 (0) | 2025.10.18 |
| [algorithm] 백준 1267번 핸드폰 요금 (0) | 2025.10.18 |
| [algorithm] 백준 2309번 일곱난쟁이 (0) | 2025.10.18 |
