PS 템플릿

#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()쓰는거랑 비슷한 원리.

<aside> ⚠️ 11729 하노이 탑 이동 순서 문제처럼, 저거 쓴다고 해도 cin & cout이 scanf & printf보다 빠르진 않다. 속도 빡빡한 경우 있을 수도 있으니 가급적이면 scanf, printf사용하기

</aside>


짤팁

char ↔ int

아스키 코드 외워두면 좋긴 하다. 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); 이런식으로 쓰면 된다.


기타

scanf 봉인 해제

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

동적할당