공통: 기저조건 명시해야 함
- 20055 (컨베이어 벨트 위의 로봇)
- 회전을 직접 구현하면 p2. 올리는 곳, 내리는 곳 인덱스 수정으로 회전 구현해야 함
- 회전 덱으로 구현해도 좋음
- 로봇 옮기는 2번째 단계 함수화 권장 (가독성)
- 로봇 옮기는 2번째 단계 복잡하게 구현하진 않았는지 확인, 반복문 하나만 써서 하도록 유도 (가독성)
- 1205 (등수 구하기)
- (C++) 초기 랭킹에 등록된 등수 n만큼 돌며 현재 등수 몇 등에 들어가는지 확인하도록 풀이 권장 O(n) → sort나 find 사용하면 연산 횟수가 더 늘어나므로 비효율적
- 14888 (연산자 끼워넣기)
- 연산자 개수 배열에 저장
- 연산자에 따른 계산 결과값 매개변수로 사용해서 관리
- 2580 (스도쿠)
- 빈칸을 따로 배열에 저장하는 방법은 비효율적
- 특정 숫자가 입력가능한지 확인하는 연산이 있다면 promising 함수로 빼도록
- 15663 (N과 M(9))
- 백트래킹 함수 내에서 중복 수 체크를 할 시에는, 사용하는 수를 오름차순 정렬했다는 전제 하에 변수 하나로 해결 가능 (이전에 사용한 수 저장!)
- check 배열 필요없음
- 중복되는 수열을 일단 모두 구한 후, 제거하는 방식으로 풀었다면 애초에 중복되는 수열이 만들어지지 않도록 탐색하는 백트래킹 풀이 유도
- 17136 (색종이 붙이기)
- 각 크기마다 색종이 개수 배열에 저장
- 배열의 값이 0이라면 색종이 붙이지 않으므로 탐색하지 않도록 주의 (스도쿠에서 이미 채워진 수 탐색 안하는 것과 비슷)
- 10971 (외판원 순회2)
- 현재 탐색하는 도시를 매개변수로 사용해줌
- 현재 탐색 도시까지의 비용도 매개변수로 사용해서 관리하면 기저 조건에 걸릴 때, 비용을 O(n)만큼 계산할 필요 x
- 아직 기저조건에 도달하지 않았을 때, 비용이 현재 정답(최솟값) 비용보다 크거나 같을 땐 바로 return