#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
return 0;
}
C++로 PS 할 때는 main함수에 저걸 써준다고 한다. 대충 파이썬에서 기본 input()
대신에 sys.stdin.readline()
쓰는거랑 비슷한 원리.
ios::sync_with_stdio(false)
C랑 C++ 스타일을 혼용할 수 없게 설정. 대신 입출력 속도 빨라짐. 여기서 말하는 C스타일은 printf, scanf, getchar같은 것들.
cin.tie(NULL); cout.tie(NULL);
출력과 입력의 연계를 끊어서 입출력 시간 줄이는 것. 기능구현할 때는 이상할 수 있는데, 알고리즘 문제 풀 때는 엥간해선 문제 없다고 함.
<aside> ⚠️ 11729 하노이 탑 이동 순서 문제처럼, 저거 쓴다고 해도 cin & cout이 scanf & printf보다 빠르진 않다. 속도 빡빡한 경우 있을 수도 있으니 가급적이면 scanf, printf사용하기
</aside>
아스키 코드 외워두면 좋긴 하다. 0은 48, A는 65, a는 97 근데 외우기 귀찮거나 까먹으면 그냥 char타입으로 더하거나 빼도 된다.
위 코드에서 field[x][y] = line[y] - ‘0’
이것처럼.
field는 int인데 line은 char이다. 바로 할당하면 char 값으로 들어가서 숫자 이상해지기 때문에 0에 해당하는 48을 빼줘야하는데,
48을 기억하기 어려우면 그냥 ‘0’을 빼줘도 된다는 말.
거꾸로 int에서 char로 바꿔야 한다면 ‘0’을 더해주면 되겠지.
#define dust_set set<pair<int, int>>
이런 식으로 자료형도 전처리할 수 있다.
단순히 자료형을 정의하고 싶은거면
using counter = long;
using func = void(*)(int);
이런식으로 쓰면 된다.
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)