문제를 풀면서 반복적으로 실수할 가능성이 높은 부분은 반드시 정리하고 실수를 반복해선 안된다.
Using IDE MS Visual Studio
Windows SDK version: 10.0.17763.0
비어있는 queue 또는 stack에서 계속 front(), pop() 시도
대입과 축적을 헷갈리지 말자. 축적의 경우 반드시 초기화할 것!
중복되는 연산을 확인하고 미리 계산할 수 있는지 생각해보자!
좌표평면 상에서의 거리 관련 문제에선 일단 유클리디안 거리를 떠올리자!
동시성 우선순위 문제는 말그대로 우선순위대로 연산하는 방법을 찾자
재귀호출에서 다음 상태를 매개변수로 넘길 때, 현재 상태를 함부로 갱신하지 말자
범위기반 for문을 사용할 때 원본 변경 여부(&)를 반드시 확인하자!
분기의 완전성(if, else if, else)을 귀찮더라도 지키자!
입력을 받을 때 그대로 대입할 지, 후처리를 해야하는지 꼭 확인하자!
하나의 그룹으로 묶여있는지는 dfs 한번으로 판별 가능함을 생각하자!
시간을 줄이기 위한 scanf 표준 입출력 사용 (예정) (scanf, cin 상황별 사용 요령)
std::ios_base::sync_with_stdio(false); cin.tie(NULL)로 표준입력속도 끌어올리기 (예정)
소수점 밑 반올림 (예정)
데이터 저장시 인덱스로 구별이 가능하다면 모두 배열로 구현하자 (예정)
우선순위 큐 (priority_queue) 활용 방법 및 중복 방지
묶고 싶은 것은 구조체(struct)를 사용하자 (예정)
컨테이너속 노드에 구조체를 통해 상태 추가하기 (예정)
문자열 처리 관련 STL 활용밥 숙지 (예정)
for문 안에서 증감부 조작으로 로직 간소화하기 (예정)
0110101 입력에서 한자리씩 받고 싶을 경우, 그냥 문자열로 받도록 하자 (예정)
반례 체계적으로 찾기 (예정)
F5 key로 바로 다음 중단점으로 이동하기 (예정)
ctrl + shift + space로 매개변수 확인
도구 - 설정 - 키보드 - 주석 단축키 변경 (Ctrl + /, Ctrl + Shift + /)
자동 인덴트 조정 (들여쓰기 조정) (파일 전체: Ctrl + K + D, 선택: Ctrl + K + F) (or Alt + F8)
함수 정의로 이동: F12
직전 커서 위치로 이동: Ctrl + - (다음커서: Ctrl + Shift + -)
동시에 여러줄 직사각형 형태로 입력: Alt + 커서로 직사각형 모양으로 드래그
전체 변수명 바꾸기: 현재 변수 위치에서 Ctrl + R 두번
Ctrl + / 안먹힐 때: 시스템 키보드 입력이 Microsoft가 아닐경우: Window + Space로 되돌리기
Window + Shift + S : 부분스크린샷
Expression: deque iterator not dereferencable (예정)
Union-Find (Disjoing Set) (서로소 집합)
재귀함수(Recursive Function)에 대한 프로그래밍적 고찰
BAEK 10216. Count Circle Groups
BAEK 1890. 점프 (풀 수는 있지만 DFS, BFS로 풀 경우 각각 시간, 메모리 제한 초과)
SWEA 2117. 홈 방범 서비스 (논리적으로 BFS이지만 유클리디안 거리를 통해 더 빠르게 계산 가능) 🌟
BAEK 1039. 교환 (+백트래킹)
SWEA 2105. 디저트 카페 (+백트레킹, 중복계산 찾아내기, 분할 병합 판별)
SWEA 1953. 탈주범 검거 (DFS, BFS 확실하게 구별해서 풀기)
SWEA 1952. 수영장 (재귀호출을 이용한 DFS)
SWEA 4008. 숫자 만들기 (오히려 순열로 푸는게 빨랐던 문제)
SWEA 2112. 보호 필름 (중첩된 순열 조합)
BAEK 14500. 테트로미노 (DFS + 예외케이스 분기 후 최대값 갱신)
BAEK 14501. 퇴사 (DFS, DP)
BAEK 14502. 연구소 (순열 조합과 BFS)
BAEK 13460. 구슬 탈출2 (상태를 노드로써 BFS 처리) 🌟🌟🌟
BAEK 15686. 치킨배달 (순열 조합, 맨 처음에 시간초과)
BAEK 17135. 캐슬 디펜스 (문제 함정 및 중복 타겟 가능성) 🌟🌟🌟
BAEK 17070. 파이프 옮기기 (DP)
BAEK 16637. 괄호 추가하기 (+ Stack 쓰는 방법)
BAEK 3085. 사탕 게임 (빠른 접근)
BAEK 17471. 게리맨더링 🌟🌟🌟 (묶음 체크)
SWEA 4012. 요리사 (순열 조합)
SWEA 5653. 줄기세포 배양 (동시성 우선순위 문제 해결이 관건)
SWEA 4013. 특이한 자석 (상태 저장 후 한꺼번에 변화)
SWEA 2383. 점심 식사시간 (2^n 순열조합 next_permutation()으로 결정하기)
BAEK 16236. 아기상어 (실수 와장창) 🌟
BAEK 15685. 드래곤 커브 (규칙 찾아내기) 🌟
BAEK 15683. 감시 카메라 (순열 조합)
BAEK 14889. 스타트 링크 (SWEA 4012와 똑같은 유형)
BAEK 1197. 최소 스패닝 트리 (Kruskal 이용) (MST)
BAEK 4195. 친구 네트워크 (endl) 🌟🌟🌟
BAEK 3780. 네트워크 연결 (압축 기법) 🌟🌟
BAEK 9938. 방 청소 (그래프적 사고) 🌟🌟🌟
BAEK 5052. 전화번호 목록 (Trie) 🌟
BAEK 1920. 수찾기 (STL <algorithm> binary_search() 활용법)
BAEK 2805. 나무자르기 (이분탐색 착안점 중요) 🌟🌟
BAEK 1654. 랜선자르기 (종료조건, 자료형 실수) 🌟🌟🌟
BAEK 2104. 부분배열 고르기 (엄청 중요) 🌟🌟🌟
BAEK 10816. 숫자카드 (최적화)