Test Case가 여러 번 존재하는 경우를 조심하자
백트래킹과 같이 재귀를 타는 경우 vector를 지역변수로 사용 or 전역 + clear()
0, 1, 예외 사항 열심히 체크
값을 갱신하여 가다보면 int를 넘어서는 경우 多
int -> MAX : pow(2,32)-1 => 2*10^9 넘으면 X
long -> MAX : pow(2,63)-1
int형의 범위를 넘을 것 같으면 그냥 long long을 쓰자
(혹시 10^18을 넘는 경우에는 long long이 아닌 string으로 계산)
맨 처음 값에 대한 visit값 true로 바꾸는 것 빼먹지 말자
배열의 범위를 보고 뒤의 형태로 만들어 사용하는 것이 시간 복잡도 측면에서 유리
top-down 방식으로 문제를 풀 때는 예외처리를 잘 해야한다. (물론 DP는 탑다운)
세자리 단위라면 이중 for문은 지양
누적합, 투포인터 등등 사용
콘솔에서 ctrl D 입력하면 입력 종료
int input;
while(cin>>input){}
char words[100];
cin.getline(words, 100, '\n');
string words;
cin.getline(cin,words)
출력문 전에 아래 코드 입력
cout<<fixed;
cout.precision(소숫점 개수);
// 아래와 같이 Q에 push 한다면 water에 입력이 없을 경우 waterQ에는 {0,0}이 들어감
pair<int,int> water
cin >> matrix[i][j];
if(matrix[i][j]=='A')
water={i,j};
waterQ.push(water)
// cin으로 한 번에 입력하자
cin >> matrix[i][j]
if(matrix[i][j]=='A'
waterQ.push({i,j});
memory 허용 4mb -> 배열에 값을 저장해서 풀이 NO, 바로 바로 갱신 YES