[BOJ2178] 미로 탐색

Updated:

미로를 지나는 최소의 칸 수 출력

  • N*M 크기의 미로
  • 1은 이동할 수 있는 칸, 0은 이동할 수 없는 칸
  • (1,1) 출발 (N,M) 도착

입력

  • 두 정수 N, M (2 <= N, M <= 100)
  • N 개의 줄에는 M 개의 정수로 미로 주어짐
  • ‘붙어서’ 입력으로 주어짐***

출력

  • 미로를 지나는 최소 칸 수

설계

  • typedef piar<int, int> Point; 선언으로 쉽게 piar 타입 구현
  • 공이 움직인다고 가정 Ball 구조체 (distance, position) 속성 선언 (굳이 구조체로 안 만드는 게 더 나아보임)
  • BFS 함수 구현
  • queue<Ball> 만들어 조건에 맞을 때 push
  • 맞는 조건 : 공이 움직일 때마다 사방으로 map 안에 있으며 1인 것만 체크
  • 움직인 거리는 bfs 돌 때마다 증가시켜 destination 에 도착하면 출력

How I solved(click to github)


ref :
BOJ2178

Leave a comment