파이썬 알고리즘/DFS, BFS 활용

    19. 퀵정렬

    퀵정렬 메커니즘 def Qsort(lt, rt): if lt

    18. 병합정렬

    18. 병합정렬

    병합정렬 메카니즘 def Dsort(lt, rt): if lt

    17. 피자배달거리(DFS)

    17. 피자배달거리(DFS)

    피자 배달 거리 N×N 크기의 도시지도가 있습니다. 도시지도는 1×1크기의 격자칸으로 이루어져 있습니다. 각 격자칸에는 0은 빈칸, 1은 집, 2는 피자집으로 표현됩니다. 각 격자칸은 좌표(행번호, 열 번호) 로 표현됩니다. 행번호는 1번부터 N번까지이고, 열 번호도 1부터 N까지입니다. 도시에는 각 집마다 “피자배달거리”가 았는데 각 집의 피자배달거리는 해당 집과 도시의 존재 하는 피자집들과의 거리 중 최소값을 해당 집의 “피자배달거리”라고 한다. 집과 피자집의 피자배달거리는 |x1-x2|+|y1-y2| 이다. 예를 들어, 도시의 지도가 아래와 같다면 0 1 0 0 0 0 2 1 0 0 1 0 1 2 0 2 (1, 2)에 있는 집과 (2, 3)에 있는 피자집과의 피자 배달 거리는 |1-2| + |2-3..

    16. 사다리 타기(DFS) - 오른쪽, 왼쪽, 위 각각 별도로 접근

    문제- 생략 문제풀이 import sys sys.stdin=open("input.txt", "r") def DFS(x, y): ch[x][y] =1 if x ==0: print(y) else: if y-1>=0 and board[x][y-1]==1 and ch[x][y-1]==0: DFS(x, y-1) #왼쪽 elif y+1=0 and board[x][y-1]==1 and ch[x][y-1]==0: ▶ ↑ 내가 왼쪽 next지점(y-1)으로 이동하려하는데, y-1좌표는 0보다 커야 하며, ▶ board[x][y-1]==1로써 방문 가능한 곳이머야 하며, ▶ ch[x][y-1]==0: 로써 방문한 흔적이 없어야 한다.