예제 4에서 물고기를 먹는 순서는 다음과 같이 나옵니다.
16236번 - 아기 상어
저 혹시 이거 해결 하셨나요?
저도 똑같이 풀어서 문제점을 발견했는데..
어떻게 해결해야 할지 감이 안잡히네요 ㅠㅠ
아니면 다시 짜셨나요? 거기서 bfs에서 예외처리 해주셨나요?
한달 전이라 이걸 읽으실지는 모르겠지만, BFS에서 방향벡터 쓰셔서 하는 경우에는 발견 즉시 물고기를 먹지 않게 하면 해결됩니다.
우선 먹을 수 있는 물고기의 위치를 표현하는 배열하나를 만드시고, 전체 탐색을 하셔서 해당 배열을 채워줍니다.
그다음에 for문 2개 row col순으로 돌려서 가장 먼저 발견되는 위치가 맨 위, 맨 왼쪽이므로 발견 즉시 먹고 count올리고 크기만큼 먹으면 크기 키워주고 등등 하시면 됩니다.
댓글을 작성하려면 로그인해야 합니다.
zo13258 5년 전 4
알고리즘을 풀면서 다른분에게 여쭤본다는 것이 큰 실례이고 귀찮은 점이라는 것을 알고 있습니다.
그래서 질문을 드리기 전에 죄송하다는 말씀을 먼저 드리고 시작하겠습니다.
제 질문은 다음과 같습니다.
아기상어 예제에서 4번 예제가 왜 60이 나오는지
전혀 이해가 되지 않습니다.
실제로 프로그램을 돌려봐도, 직접 손으로 풀어도 56이 나오는데
제가 어느 부분에서 잘못 이해를 한 것인지 코드를 통해 여쭤보고 싶습니다.
문제를 bfs로 풀었고, 탐색 순서는 상좌우하입니다.
소스코드를 첨부하오니 확인 부탁드리겠습니다. 감사합니다.