[Python] 2105. 디저트 카페 dy = [1, 1, -1, -1] dx = [1, -1, -1, 1] def dfs(y, x, s, cnt, dessert): global answer for i in range(s, 4): # 사각형 모향의 방향은 오직 네가지만 나온다. 따라서 이전에 갔던 방향은 고려하지 않는다. ny = y + dy[i] # 다음 대각선 nx = x + dx[i] if 0 Algorithm/SW Expert Academy 2021.10.12
[Python] 5188. 최소합 # 방향 벡터 dx = [1, 0] dy = [0, 1] # 오른쪽 아래까지 이동하는 함수 ! def gogo(x, y, total): global answer if answer < total: # 이미 합이 크다면 가볼 필요 없어 return if x == y == n-1: # 오른쪽 아래까지 왔다면 if total < answer: # 지금까지 지나온 길의 합이 answer에 들어있는 값보다 작은 경우 갱신 answer = total return for i in range(2): # 오른쪽, 아래 이동 nx = x + dx[i] ny = y + dy[i] if nx Algorithm/SW Expert Academy 2021.10.01
[Python] 5105. 미로의 거리 # 방향 벡터 / 상, 하, 좌, 우 dy = [1, -1, 0, 0] dx = [0, 0, -1, 1] # 미로탈출 bfs(시작 y좌표, 시작 x 좌표) -> 2의 위치 def bfs(sy, sx): q = [(sy, sx)] # q에 시작 좌표 넣어주고 시작 # q가 빌때까지 반복 while q: now_y, now_x = q.pop(0) # 현재 좌표 q에서 가져오기 (bfs니까 맨앞에꺼) # 상하좌우 탐색 for i in range(4): # 이동해볼 좌표 설정 (현재 위치 + 방향 벡터가 가리키는 곳) next_y = now_y + dy[i] next_x = now_x + dx[i] # 이동해볼 곳이 미로 범위 안에 있다 ? if 0 Algorithm/SW Expert Academy 2021.09.23
[Python] 1226. 미로1 # 방향 벡터 / 상, 하, 좌, 우 dy = [1, -1, 0, 0] dx = [0, 0, -1, 1] # 미로탈출 bfs(시작 y좌표, 시작 x 좌표) -> 2의 위치 def bfs(sy, sx): visited[sy][sx] = 1 q = [(sy, sx)] # q에 시작 좌표 넣어주고 시작 # q가 빌때까지 반복 while q: now_y, now_x = q.pop(0) # 현재 좌표 q에서 가져오기 (bfs니까 맨앞에꺼) # 상하좌우 탐색 for i in range(4): # 이동해볼 좌표 설정 (현재 위치 + 방향 벡터가 가리키는 곳) next_y = now_y + dy[i] next_x = now_x + dx[i] # 이동해볼 곳이 미로 범위 안에 있다 ? if 0 Algorithm/SW Expert Academy 2021.09.23
[Python] 4875. 미로 dfas # 델타 방향 탐색 (상, 하, 좌, 우) dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] # 탈출 함수 def escape(sy, sx): global result # 현재 위치 표시 (지나왔다고 표시하기 다시 탐색 안하도록) maze[sy][sx] = 2 # 이미 출구 찾았으면 돌아가 if result: return # 방향 잡기 for i in range(4): ny = sy + dy[i] nx = sx + dx[i] # 미로 안에서만 탐색하도록 조건문 설정 if 0 Algorithm/SW Expert Academy 2021.09.21