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 <= ny < n and 0 <= nx < n: # 가고자 하는 곳이 도착지점이면 result = 1 if maze[ny][nx] == 3: result = 1 return # 가고자 하는 곳이 통로이면 들어가기 if maze[ny][nx] == 0: escape(ny, nx) tc = int(input()) for idx in range(1, tc+1): n = int(input()) # 미로 받아오기 & 출발 지점 찾기 maze = [] sx = 0 for i in range(n): maze.append(list(map(int, input()))) # 2아직 못찾았고, 받아온 리스트에 출발지점이 있으면 출발 지점 저장 if not sx and 2 in maze[i]: sy = i sx = maze[i].index(2) result = 0 # 결과의 기본값 0으로 준다. escape(sy, sx) # 탈출 함수 print('#{} {}'.format(idx, result))
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[Python] 4881. 배열 최소합 (0) | 2021.09.21 |
---|---|
[Python] 4880. 토너먼트 카드 게임 (0) | 2021.09.21 |
[Python] 4874. Forth (0) | 2021.09.21 |
[Python] 1224. 계산기3 (0) | 2021.09.21 |
[Python] 1223. 계산기2 (0) | 2021.09.21 |