PS알못 OrbitHv의 PS logo PS알못 OrbitHv의 PS

태그:

CLASS 3

주어진 공간에 특정 크기의 물고기와 아기 상어의 위치가 주어지고, 문제에 의해 주어진 아기 상어의 행동 방법에 따라 아기 상어가 행동했을 때 걸리는 최소 시간을 구하는 문제입니다. 문제의 조건은

  • 자기보다 작은 크기의 물고기만 먹을 수 있다.
  • 자기와 크기가 같은 물고기는 먹을 수는 없지만 지나갈 수 있다.
  • 자기보다 큰 크기의 물고기가 있는 곳은 지나갈 수 없다.
  • 아기 상어는 먹을 수 있는 물고기의 위치 중 가장 가까운 곳으로 이동한다. 거리가 같은 곳이 있다면 가장 위쪽에 있는 곳, 높이가 같다면 가장 왼쪽에 있는 곳으로 이동한다.
  • 아기 상어는 자신의 크기와 같은 수의 물고기를 먹으면 크기가 1 증가한다.
  • 먹을 수 있는 물고기가 있을 때까지 움직인다.

입니다. 처음 4개의 조건은 그래프 탐색 시에 유용하게 사용될 조건이고, 그 다음 조건은 자기보다 작은 물고기의 조건이 아기 상어가 물고기를 먹을 때마다 바뀜을 의미하며, 마지막 조건은 탐색을 계속할 조건입니다. 이 조건에 따라 BFS를 이용하여 이동하는 거리를 모두 더해서 출력하면 됩니다.

소스 코드

언어 코드 시간
C++ 코드(Github) / 코드(백준) 2020-12-26 14:46:35