BFS란?

BFS의 예시

  1. 시작하는 칸을 큐에 넣고 방문했다는 표시를 남김.
  2. 큐에서 원소를 꺼내어 그 칸에 상하좌우로 인접한 칸에 대해 3번을 진행
  3. 해당칸을 이전에 방문했다면 아무것도 하지 않고, 처음으로 방문했다면 방문했다는 표시를 남기고 해당칸을 큐에 삽입.
  4. 큐가 빌 때까지 2번을 반복

BFS에 쓰이는 STL

BFS의 정석적인 구현

BFS를 구현할 때 실수하는 점 몇가지

  1. 시작점을 Queue에 넣지만 방문했다는 표시를 남기지 않는다.
  2. 큐에 넣을 때 방문했다는 표시를 하는 대신 큐에서 빼낼 때 방문했다는 표시를 남겼다. 이렇게 되면 같은 칸이 큐에 여러번 들어가게 되어서 시간초과나 메모리 초과 발생가능성 있음.
  3. nx, ny가 배열을 벗어났을 때에 대한 확인을 잘못했다.