2022/01/06 2

[백준 14442] - 벽 부수고 이동하기 2(JAVA)

[문제] 출처 - https://www.acmicpc.net/problem/14442 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net [문제 풀이] 이전에 포스팅한 백준 2206 - 벽 부수고 이동하기 와 풀이가 크게 달라질 게 없다. [ 2206문제 해설 ] 백준 - 2206번을 풀 수 있으면 어렵지 않게 이 문제를 해결할 수 있을 것이다. 이번 문제는 이전 문제와 다르게 벽을 K개 부실 수 있는 조건이 추가되었다. K개를 부실 수 있는 조건을 지켜 코드를 만들면 된다. B..

백준 문제풀이 2022.01.06

[백준 2206] - 벽 부수고 이동하기(JAVA)

[문제] 출처 - https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net [문제 풀이] 최단 경로를 찾는 BFS로 해결할 수 있다. 만약 모든 벽을 0으로 바꾸고 찾게 된다면 N과 M 제한 조건에 의해 (1000*1000)^2의 복잡도를 가지게 되어 시간 초과가 된다. 이 문제의 핵심은 벽을 부수고 이동하는 것이 빠르면, 벽을 한 개 까지 부수고 이동하여도 된다 라는 조건이 있다. 즉 어떤 지점에 도착했을 때 벽을 부수고 온 ..

백준 문제풀이 2022.01.06