티스토리 뷰

PS

백준 16236. 아기 상어

tose33 2022. 3. 29. 17:02

https://www.acmicpc.net/problem/16236

 

16236번: 아기 상어

N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가

www.acmicpc.net

 

공간의 크기 N이 최대 20으로 매우 작기 때문에 매번 아기상어보다 작으면서 가까운 물고기를 찾으면 된다.

좌측상단부터 우측하단으로 탐색하면서 아기상어보다 크기가 작은 물고기의 거리를 bfs 알고리즘으로 구하고,  가장 가까운 물고기를 먹는다.

 

탐색을 좌측상단에서 우측하단으로 진행하면 상어가 어디로 이동할지 결정하는 조건중 

 

  • 먹을 수 있는 물고기가 1마리보다 많다면, 거리가 가장 가까운 물고기를 먹으러 간다.
    • 거리는 아기 상어가 있는 칸에서 물고기가 있는 칸으로 이동할 때, 지나야하는 칸의 개수의 최솟값이다.
    • 거리가 가까운 물고기가 많다면, 가장 위에 있는 물고기, 그러한 물고기가 여러마리라면, 가장 왼쪽에 있는 물고기를 먹는다.

위 마지막 조건을 자동으로 충족한다.  

 

 

'PS' 카테고리의 다른 글

백준 2252. 줄 세우기  (0) 2022.04.01
백준 1197. 최소 스패닝 트리  (0) 2022.04.01
백준 2583. 영역 구하기  (0) 2022.03.29
백준 11404. 플로이드  (0) 2022.03.21
백준 2096. 내려가기  (0) 2022.03.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함