C,C++/코딩테스트
BFS 관련 팁
권멋져
2022. 3. 17. 22:27
1. 좌표계를 그대로 할 것.
-> 아무 생각없이 x축 y축을 바꿔서 받았더니 결과가 다르게 나옴
-> 대충 맞는 부분도 있지만 다른것이 존재함
2. queue 에 push 하는 타이밍
-> 좌표계에서 인접한 객체를 찾을 때
=> 좌표계를 전부 돌면서 객체를 발견할 때 마다 push
-> 좌표계에서 지정된 지점부터 점점 퍼져 나갈 때
=> 좌표계를 입력 받을때 미리 push
3. 다른 큐와 비교할 때 주의점
-> 다른 큐가 방문했던 곳을 비교해서 방문할때 아예 방문하지 않았을 때도 생각해야한다.
ex) 다른 큐가 방문했던 곳을 비교할때 자신보다 작을때를 비교한다 (현재 큐 돌고있는 큐보다 먼저 왔었는지)
그때 아예 방문하지 않았을 때도 고려해야한다.
보통 -1로 배열을 초기화 하기때문에 방문하지 않으면 자신보다 무조건 작다.
결론적으로 조건문을 만들때 방문을 했으면서 자신보다 작은지 확인해야한다.
... 문제를 풀다 메모할만한 것들은 메모...