[프로그래머스] 게임 맵 최단거리 / 파이썬 / BFS
💡solutions ) 💬 BFS 알고리즘을 통해 최단 경로를 찾는 문제 💬 이때 거리를 찾고, 또 이미 지났던 경로를 다시 방문하지 않기 위해 visit 배열을 만들어서 거리를 저장하기 👨💻code ) from collections import deque def solution(maps): answer = 0 dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] q = deque([(0, 0)]) visit = [[0]*len(maps[0]) for _ in range(len(maps))] visit[0][0] = 1 maps[0][0] = 0 while q: x, y = q.popleft() for k in range(4): nx, ny = x + dx[k], y + dy[k] if 0
2021. 10. 16.
[프로그래머스] 거리두기 확인하기 / 파이썬 / Python / 2021카카오 인턴십 코딩테스트
💡solutions ) 💬 대기실의 각 칸을 하나의 정점으로 보고, 응시자들이 있는 정점을 기준으로 bfs 그래프 탐색을 진행함. 💬 각 정점에서 인접하여 연결된 간선들을 탐색하는데 파티션이 있는 경우는 지나가지 못하고, 거리 2이내의 정점들만 살펴보며 다른 응시자의 유무를 확인함. 💬 이때 지나간 정점은 다시 지나가지 않기 위해 visit 배열을 통해 중복을 체크함. 👨💻code ) from collections import deque dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] # 상하좌우 def bfs(place, i, j): visit = [[0]*5 for _ in range(5)] q = deque() q.append((i, j, 0)) visit[i][j] = 1 w..
2021. 8. 12.