bfs로 최단 경로 찾고 3차원 배열 쓰는 것까지는 이해가 됐습니다
근데 왜
말처럼 이동, 상하좌우 이동할 때
visit[0~K][ny][nx] == true -> continue로 하면 틀리고
상하좌우 이동할 때는
visit[현재 점프 횟수][ny][nx] == true -> continue,
말처럼 이동할 때는
visit[현재 점프 횟수 + 1][ny][nx] == true -> continue
로 해야 맞을까요?
bfs로 먼저 온 쪽이 최단 경로니까 모든 점프 횟수 중 먼저 도착한 애만 가져가면 안 되나요?
K가 아니라 현재까지 사용한 점프횟수겠죠?
+1까지인가? 암튼
해보니까 현재까지 사용한 점프도 틀리고 K도 틀렸는데 사용한 점프 + 1은 또 맞네요 대체 왜 이런 거죠?? 걍 무조건 먼저 온 쪽이 최단경로 아닌가요?
점프를 더 많이 써서 더 빨리 왔다면 나중에 더 진행못하는 경우가 있을지도 모르니까... 더 많이 쓴건 판단하면 안되구요
아 그럼 본문의 후자는 각 점프 횟수마다 갈 수 있는 모든 곳의 최단 경로를 찾는 거고 말 움직임일 때 0~현재 점프 +1, 상하좌우 0~현재점프 조합은 이전 점프에서 가봤던 곳은 가지 말면서 << 이게 제가 말한 먼저 도착했으니 최단 경로일 거다인 거고 0~K는 그냥 점프를 다 써서라도 미래의 최단 경로가 아니라 당장의 최단 경로를 찾는 거니까 틀린 거네요 댓글 보고 글로 한번 정리해보니까 이해가 되네요 감사합니당ㅎㅎ