BFS and DFS
BFS
알고리즘 설명
- 각 칸을 방문할 때 너비를 우선으로 방문하는 알고리즘
- 시작하는 칸을 큐에 넣고 방문했다는 표시를 남김
- 큐에서 원소를 pop하고 그 칸에 상하좌우로 인접한 칸 확인
- 방문하지 않고 조건에 만족하면 push
- 큐가 빌때까지 반복
자주 실수하는 것들
- 시작점에 방문했다는 표시를 남기지 않음
- 큐에 넣을 때 방문했다는 표시하기!
- 큐에서 빼낼 때 방문하면 시간초과가 날 수 있음
- 범위 체크하기
DFS
알고리즘 설명
- 각 칸을 방문할 때 깊이를 우선으로 방문하는 알고리즘
- 시작하는 칸을 스택에 넣고 방문했다는 표시를 남김
- 스택에서 원소를 꺼내고 조건에 맞고 방문하지 않았다면 해당하는 다음 칸을 스택에 삽입
- 스택이 빌때까지 반복