오답노트

BFS 관련 팁 본문

C,C++/코딩테스트

BFS 관련 팁

권멋져 2022. 3. 17. 22:27

1. 좌표계를 그대로 할 것.

 -> 아무 생각없이 x축 y축을 바꿔서 받았더니 결과가 다르게 나옴

 -> 대충 맞는 부분도 있지만 다른것이 존재함

 

2. queue 에 push 하는 타이밍

 -> 좌표계에서 인접한 객체를 찾을 때

     => 좌표계를 전부 돌면서 객체를 발견할 때 마다 push

 -> 좌표계에서 지정된 지점부터 점점 퍼져 나갈 때

     => 좌표계를 입력 받을때 미리 push 

 

3. 다른 큐와 비교할 때 주의점

 -> 다른 큐가 방문했던 곳을 비교해서 방문할때 아예 방문하지 않았을 때도 생각해야한다.

     ex) 다른 큐가 방문했던 곳을 비교할때 자신보다 작을때를 비교한다 (현재 큐 돌고있는 큐보다 먼저 왔었는지)

          그때 아예 방문하지 않았을 때도 고려해야한다.

          보통 -1로 배열을 초기화 하기때문에 방문하지 않으면 자신보다 무조건 작다.

          결론적으로 조건문을 만들때 방문을 했으면서 자신보다 작은지 확인해야한다.

 

... 문제를 풀다 메모할만한 것들은 메모...