본문 바로가기
  • "하나씩 기록하다보면 누군가에게 도움이 되지 않을까"
IT/알고리즘 풀이

[백준] [자바] 16236번 : 아기 상어

by raVineL 2021. 3. 26.
728x90

문제 출처
www.acmicpc.net/problem/16236

 

16236번: 아기 상어

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

www.acmicpc.net

1. 풀이 접근

  ㆍ 현재 먹이를 먹을 수 있는지 확인 ( 먹이 못 먹을 경우 종료 후 시간 출력 )
  ㆍ 현재 위치로 부터 가장 가까운 먹이 찾기 (BFS 탐색)
    - 나보다 큰 먹이는 지나가지 못함 ( 벽 같은 역할 )
    - 나의 크기와 같거나 작으면 지나 갈 수 있음 
    ※ 물고기를 현재 크기 만큼 먹어야 크기 성장함. Ex. 상어 크기 3 -> 3번먹어야 4로 진화
  ㆍ 가장 가까운 곳에 먹을 수 있으면 먹고나서 이동한 칸 수 만큼 시간 증가
    - 먹이 위치로 이동 후 남은 먹이 리스트에서 먹은 먹이 삭제


2. 소스코드

github.com/Choi-JinYeong/Solve_Alg/tree/master/Solve_Algs/src/Git_BJ_16236

 

Choi-JinYeong/Solve_Alg

알고리즘 풀이. Contribute to Choi-JinYeong/Solve_Alg development by creating an account on GitHub.

github.com


3. 맺음말

  ㆍ 체감난이도 : 보통
  문제를 이해만 잘하면 풀이과정은 BFS로 쉽게 할 수 있음. BFS구현할 때 방문한 위치 초기화 하는 과정에서 시간을 많이 잡아먹음. 원래 기본 풀이 1시간, BFS 문제 찾는데 40분 소요. 실수 줄이기.
  더욱 좋은 풀이방법이나 보완할 수 있는 부분, 또는 문제가 될 수 있는 부분들은 알려주시면 감사하겠습니다.

728x90

댓글