BFS 6

[백준] 13549번 숨바꼭질 3 풀이 파이썬(python)

13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net [문제] [코드] from collections import deque n , k = map(int, input().split()) visited = [0] * 100001 def bfs(): q = deque() q.append(n) while q: now = q.popleft() if now == k: return visited[now] for next_to in [now*2, now-1, now+1]: if 0

[백준] 1240번 노드사이의 거리 파이썬 풀이

1240번: 노드사이의 거리 N(2≤N≤1,000)개의 노드로 이루어진 트리가 주어지고 M(M≤1,000)개의 두 노드 쌍을 입력받을 때 두 노드 사이의 거리를 출력하라. www.acmicpc.net [문제] [코드] import sys from collections import deque input = sys.stdin.readline n, m = map(int, input().split()) tree = [[] for _ in range(n+1)] #indexing을 위해서 +1사이즈로 구성 #두노드 사이 거리를 구하는 bfs def bfs(a, b): q = deque() q.append((a, 0)) visited = [False] * (n+1) visited[a] = True while q: s..

[백준] 2667번 단지 번호 붙이기 파이썬(Python) 풀이

2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net [문제] [코드] DFS (깊이 우선 탐색) 풀이 import sys from collections import deque input = sys.stdin.readline N = int(input()) graph = [] result = [] count = 0 for _ in range(N): graph.append(list(map(int, input().rstrip()))) dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] def dfs(x, ..

[백준] 1326 폴짝폴짝 파이썬 풀이

1326번: 폴짝폴짝 첫째 줄에 징검다리의 개수 N(1≤N≤10,000)이 주어지고, 이어서 각 징검다리에 쓰여 있는 N개의 정수가 주어진다. 그 다음 줄에는 N보다 작거나 같은 자연수 a, b가 주어지는 데, 이는 개구리가 a번 www.acmicpc.net [문제] [코드] from collections import deque def bfs(start, finish, stone, n): q = deque() q.append(start - 1) visited = [-1] * n visited[start-1] = 0 while q: node = q.popleft() for i in range(n): if (i-node) % stone[node] == 0 and visited[i] == -1: q.appen..

[백준] 1260번 DFS와 BFS 파이썬(Python) 풀이

1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net [문제] [코드] n, M, v = map(int, input().split()) #인접한 m = [[0] * (n+1) for i in range(n+1)] #방문 visited = [0] * (n+1) for i in range(M): a, b = map(int, input().split()) m[a][b] = m[b][a] = 1 #dfs def dfs(v): visited[v] = 1 print(v, end=' ') ..