아기상어의 선택 조건 :
1. 거리가 가장 가까운 물고기
2. 그 중에서 가장 위쪽 물고기
3. 그 중에서 가장 왼쪽 물고기
bfs에서 상, 좌, 우, 하 순서로 큐잉했는데 거리가 2 이상인 경우부터 문제가 생긴다.

거리 2부터 큐에 담기는 순서
삐뽀삐뽀! 5번 부터 문제 발생!!
해결책 1. 처음으로 먹을 수 있는 물고기가 pop 됐을때, 남은 큐를 다 뒤져서 조건에 맞는 물고기를 찾는다.
-> 먹을 수 있는 물고기가 처음 pop 됐을 때, 같은 거리의 물고기가 이미 모두 큐에 들어가 있을 것인가? YES!
해결책 2. 먹을 수 있는 물고기 전수조사 후 최적 물고기 찾기.
-> bfs 돌리는 의미가 퇴색됨

위는 해결책 1로 돌린 경우, 아래는 해결책2 전수조사 한 케이스다. 꽤 시간차가 난다!
n단계가 bfs 큐에서 팝될때는 이미 이전 단계를 모두 bfs 돈 이후이다.
즉 n 단계가 큐에서 처음 팝 된 경우 큐에는 오로지 n 단계 노드들만 들어있을 것이라고 예상할 수 있다. 추후 다른 문제 풀 때 이런 접근이 도움이 될지도!
'Algorithem > 백준 PS with code' 카테고리의 다른 글
백준 #1562 : 계단 수 (0) | 2023.01.06 |
---|---|
백준 #1509 팰린드롬 분할 : 점화식 (0) | 2023.01.06 |
백준 #1007 - 벡터매칭 : 절반은 더하고, 절반은 빼면 된다? (0) | 2023.01.06 |
백준 #14938 - 서강그라운드 : 각 노드에서 범위 안에 속하는 모든 노드 체크하기 (0) | 2023.01.06 |
백준 #9019 DSLR : 다음 세대에 어떻게 정보를 전달할것인가? (0) | 2023.01.06 |