2017년 4월 6일 목요일

1600 말이 되고픈 원숭이

백준 1600 말이 되고픈 원숭이 https://www.acmicpc.net/problem/1600

<유사문제> 
2206 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206

정답비율 13%, bfs를 사용해서 풀면 금방 해결될거같았는데 간과했던 것이 있던 문제

말처럼 이동할 수 있는 회수가 K번이 존재한다. 말처럼 이동할 수 있는 회수를 변수로 저장하여 0이상이면 bfs를 말의 이동, 원숭이의 이동 돌리고 0이면 원숭이의 이동만 돌린다.
문제는 방문한곳을 저장하는 visit[max][max]배열이다.

K=1, N=4, M=4
0 0 1 1
1 0 1 1
1 0 1 1
1 1 1 0

(1,3)공간까지 원숭이의 이동으로 움직이다 말의 이동으로 움직이면 4번만에 갈 수 있다.

하지만 단순 2차원배열로 저장하면 K가 0이든 1이상이든 가장 빨리 방문한곳은 어찌됬든 방문하지 못하는 최선의 경우만 파악하기 때문에 틀린답이 된다.

∴ visit[K][N][M]으로 K에 따른 방문경우를 따지며 bfs를 돌리면 된다.

댓글 없음:

댓글 쓰기