본문 바로가기
Algorithm/BOJ

[BOJ]2206번: 벽 부수고 이동하기

by BAYABA 2020. 8. 18.

 

https://www.acmicpc.net/problem/2206


기본 BFS 유형에서 '벽을 부쉈냐'라는 상태가 추가되었습니다.

 

벽을 부쉈냐 / 안 부쉈냐라는 상태를 0,1 비트로 표현할 수 있습니다.

 

즉, 같은 칸을 x,y를 방문했어도

1. 벽을 이미 한 번 부수고 이동하는 상황은 visited[0][x][y]로 표시

2. 벽을 아직 안 부수고 이동하는 상황은 visited[1][x][y]로 표시

 

이렇게 위 둘은 같은 좌표를 방문했어도 서로 다른 상태가 되는 것입니다.

 

그러므로 bfs 탐색을 할 때 벽을 부쉈냐 안 부쉈냐까지 고려해서 탐색을 해주면 됩니다.

 

탐색 종료시점은 벽을 부쉈든 안 부쉈든 N,M 지점에 도착하기만 하면 됩니다. 


https://github.com/cottory/algorithm/blob/master/BOJ/BOJ2206.cc

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ]7576번: 토마토  (0) 2020.08.22
[BOJ]10473번: 인간 대포  (0) 2020.08.22
[BOJ]7562번: 나이트의 이동  (0) 2020.08.18
[BOJ]1525번: 퍼즐  (0) 2020.08.17
[BOJ]10217번: KCM Travel  (0) 2020.08.17