busyhuman   5년 전

안녕하세요.

이 문제에서 방문한 곳 처리를 어떻게해줘야하는지 궁금합니다.

예시 몇 개를 보니까 방문한 곳이어도 다시 방문하게 되는 경우가 있더군요.

그래서 단순히 방문을 체크해주는 것은 의미가 없다고 생각되어서 그냥 방문 수를 세는 방식으로 처리해줬습니다.

한 곳을 임의의 n번 방문하면 '아 이거는 구멍에 도달할 수 없는 것이다'라고 처리하여 -1을 출력했는 방식으로 처리했는데

간신히 큐가 안터지는 범위 내에서 휴리스틱으로 처리하긴했는데

이건 좀 잘못 푼 거같아서 원래 어떻게 풀어야하는건지 질문드립니다.

질문을 적고 나니 각 위치마다 상하좌우에서 온 것을 체크해야하나 생각이들긴했는데 잘 모르겠습니다.

djm03178   5년 전

한 번 움직여서 두 구슬이 모두 멈췄을 때의 좌표를 각각 (x1, y1)과 (x2, y2)라고 해봅시다. 이걸 하나의 상태로 보고 BFS를 하면 됩니다.

visited[x1][y1][x2][y2]와 같이 방문 체크를 할 수 있습니다.

busyhuman   5년 전

아하 그냥 둘 다 저장하는 방법이 있었네요. 감사합니다

댓글을 작성하려면 로그인해야 합니다.