320x100
문제 : programmers.co.kr/learn/courses/30/lessons/1844
0과 1로 이루어진 게임 맵이 2차원 배열로 주어진다. 0은 벽, 1은 통로를 의미한다.
시작 위치에서 종료지점으로 가고자 할 때 최단거리를 구해라. 종료지점으로 갈 수 없다면 -1을 반환해라.
전형적인 BFS 문제.
시작 지점에서 상하좌우((-1,0), (1,0),(0,-1),(0,1))로 이동하면서 이동횟수를 저장한다. 이동한 위치가 벽(0)이라면 탐색을 종료하고 통로(1)라면 해당위치에서 상하좌우로 탐색을 계속한다.
너비우선탐색으로 탐색하며 가장 먼저 도착지 (n, m)에 도착했을 때 이동횟수가 정답이 된다.
(n,m)에 도착하지 않고 탐색이 종료되었다면 -1을 반환한다.
시간복잡도는 게임맵 크기인 O(NM).
320x100
'알고리즘 문제 > Programmerse' 카테고리의 다른 글
[programmers][월간 코드 챌린지 시즌1] 두 개 뽑아서 더하기 (0) | 2020.09.15 |
---|---|
[programmers][찾아라 프로그래밍 마에스터] 폰켓몬 (0) | 2020.09.13 |
[programmers][찾아라 프로그래밍 마에스터] 사칙연산 (0) | 2020.09.13 |
[programmers][2020카카오공채] 가사 검색 (0) | 2020.05.12 |
[programmers][2020카카오공채] 자물쇠와 열쇠 (0) | 2020.05.10 |
댓글