shinbian11   3년 전

이 문제에서, 다른 곳으로 이동하지 않고 낮과 밤만 보내는 경우도 생각해야 한다고 했는데, 해답을 보니까 그때의 조건을 57번째 줄처럼 해놓앗더라고요, 저부분이 이해가 안됩니다.  wall[x][y][z][1 - day] == 0 이라는 조건이 왜 다음 칸으로 이동하지 않는다는 의미인가요? 

물론 wall[x][y][z][1 - day] == 0 이라는 의미는, 현재 위치에서 움직이지 않고, 낮과 밤만 바꾸었을 때는 방문한 적이 없다! 라는 의미인건 알고 있는데요.

제가 궁금한건, 가만히 있는다는 의미는,  

1. 주변에 갈 수 있는 길이 없고 ,

2. 벽을 부셔야 하는데 현재가 밤일때 

>> 이런 경우에만 가만히 있어야 하는 걸로 이해했는데요. 그럼 거기에 따른 처리를 if문의 조건문에 포함시켜주어야 하는 거 아닌가요?

예를 들면 모든 a[nx][ny][z][day]== 1이고(사방이 벽), day==1 (1을 밤이라 가정했을 때) >> 이러한 조건이 있어야 하는거 아닌가요?

어떻게 저렇게 간단하게 생각을 할 수 있는지가 궁금하면서도 부럽습니다. 너무 어렵게 접근하는것일까요?

qktkzpal3301   3년 전

1. 주변에 갈 수 있는 길이 없고 ,

2. 벽을 부셔야 하는데 현재가 밤일때

1번에 대해서,

주변에 갈 수 있는 길이 있더라도, 기다렸다가 벽을 부수는게 이득일 수 있기 때문입니다.

예를 들어, 다음과 같은 예제에서 길이 있으면 기다리지 않고 무조건 간다고 하면

24일의 시간이 걸립니다.

하지만 x,y(6,6)에서 하루 기다린 후 x,y(6,7)로 이동한다면 15일의 시간만 소요됩니다.

따라서 위 코드가 정상적으로 동작하는 것입니다.

shinbian11   3년 전

감사합니다

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