336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

이 문제는 BFS로 풀었는데 DP로 풀어야 한다고 하길래 음... 뭐 DP인것같기도 한데 내가 아직 DP에 대한 정확한 개념이 없나부다;;


뭐 문제를 요약하자면, 1,1 부터 m,n 까지 간다 이때 나는 row, col 로 생각하고 매트릭스라 생각했으니 x y 로 받은 값을 뒤집어서 했다 


1,1 ~ m,n 까지 갈 때 가장 벽을 적게 부시고 이동하는 것을 찾는 것이다. 문제의 input으로 '1' 은 벽, '0' 은 뚫린 길이다.


그러니 1을 가장 적게 만나며 최대한 0인 길로 이동해야한다는 얘긴데...


뭐 처음에 생각부터 BFS로 맵을 탐색해야겠다 라고 생각했었고, 이동 중에 가장 짧은 ? 짧다라그래야 하나 아닏;;; 보다 긴 경로를 만나면 긴경로를 작은 값으로 갱신한다.


(큐에넣은자료)이동했을 시에 주변에 (자신)or (자신+1)보다 큰 값이 생기면 각 값으로 갱신한다. (mov 벡터배열을)

큐에 넣고 값을 갱신하는 방식으로 하였다. 


자신 / 자신+1 은 

① 이동 시에 벽이 아닌 것 (0) 

② 이동 시에 벽인 상태 (1)


로 큐에 갱신을 위해 집어 넣는다. 


음.... 위의 방식대로 BFS 탐색을 하며 mov 배열 값을 갱신하며 마지막 값인 mov [m-1][n-1] 을 출력했다.



'PSNote > Problem Solving' 카테고리의 다른 글

[BOJ-11501]주식  (0) 2017.07.17
[BOJ-2164]카드2  (0) 2017.07.17
[BOJ-1927]최소힙  (0) 2017.07.17
[BOJ-1004]어린왕자  (0) 2017.07.17
[BOJ-2302]극장좌석  (0) 2017.07.17

+ Recent posts