Loading...

[Python] BOJ 2178 - 미로 탐색(BFS)

www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net N * M칸의 map을 입력받고 BFS를 돌려준다. 1. (0,0)부터 시작하므로 q에 (0,0)을 넣고 BFS 시작 2. i가 0부터 3까지 돌면서 nx = x + dx[i], ny = y + dy[i]를 통해 현재 좌표의 상하좌우를 모두 '넓게' 탐색한다. 3. 만약 (nx,ny)를 방문한적이 없고 map[nx][ny]가 1이면 q에 넣고 dist[nx][ny]에 dist[x][y] + 1을 저장하고 (nx,ny)에 방문했다는 표시를 한다..

2021. 3. 23. 22:41

[Python] BOJ 1260 - DFS와 BFS(DFS, BFS)

www.acmicpc.net/problem/1260 기초적인 그래프 탐색 문제이다. (그 동안 배우지 않고 어려워보여서 손을 안대고 있었는데, 막상 강의를 듣고 스터디도 하면서 문제를 많이 풀어보니 할 만한 것 같다.) 그래프 탐색방법에는 크게 2가지가 있다. 바로 DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)이다. DFS(Depth First Search) - 깊이 우선 탐색이란, 쉽게 말해 한 정점을 정해 끝까지 파고들어가는 방법이다. - 모든 노드를 방문하고자 할 때 이 방법을 쓴다. - 자기 자신을 호출하는 재귀방식을 사용한다. - 시간 복잡도 = O(V + E) (V: 정점의 수, E: 간선의 수) 단점 - BFS에 비해 조금 느리다. - DFS는 해를 구하면 탐색이 종료되므로, 구한 해가..