[백준] 1261번 알고스팟 c++


[백준] 1261번 알고스팟 c++

풀이 1 3차원 배열 BFS 이용 check[x][y][z]를 만들어서 x, y까지 오는데 z 개의 벽을 부쉈다를 저장한다. BFS를 돌면서 벽이 아니면 그대로 가면 되고 벽이면 nx, ny, nz + 1을 갔는지 확인하고 안 갔으면 간 다음에 nx, ny, nz + 1을 큐에 넣어준다. N, M까지 오는 경로가 여러 개 있을 수 있기에 N - 1, M - 1 도달하면 계속 값을 갱신해 준다. 풀이 2 가중치를 0과 1로 보고 다익스트라 이용해서 풀 수 있다. 정해는 다익스트라 같다. BFS랑 시간 차이가 너무 많이 난다. 2차원 배열 d를 만드는데 이건 x, y까지 가는데 d[x][y] 개의 벽을 부쉈다는 의미이다. 먼저 벽이 아닌 곳을 가면 d[nx][ny] = d[x][y]를 해준다. 어차피 벽을 부수..........



원문링크 : [백준] 1261번 알고스팟 c++