Loading...

[백준] 2178번 미로탐색 (bfs, python)

www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 최소 경로를 bfs로 찾는 법 from collections import deque def bfs(): dq=deque() dq.append((0,0)) vis[0][0]=1 cnt=1 while dq: x,y=dq.popleft() if x==n-1 and y==m-1: return vis[x][y] for k in range(4): xx,yy=x+dx[k],y+dy[k] if xx=n or yy=m: continue if vis[xx][y..

[백준] 1260번 bfs와 dfs (python, java)

1. python import collections import sys sys.setrecursionlimit(2000) def dfs(x): visited[x]=True print(x,end=' ') for y in sorted(dict[x]): if not visited[y]: dfs(y) def bfs(x): visited[x]=True dq=collections.deque() dq.append(x) while dq: cur=dq.popleft() print(cur,end=' ') for y in sorted(dict[cur]): if not visited[y]: visited[y]=True dq.append(y) n,m,v=map(int,sys.stdin.readline().split()) dic..

프로그래머스 가장 먼 노드 (파이썬, bfs)

vis배열을 -1로 초기화시키고 bfs를 돌며 vis가 -1인 원소들을 집어넣으며 현재 길이를 vis배열에 다시 집어넣는다 from collections import deque def solution(n, edge): answer = 0 vis=[-1]*(n+1) adj=[[] for _ in range(n+1)] for e in edge: adj[e[0]].append(e[1]) adj[e[1]].append(e[0]) q=deque([[1,0]]) vis[1]=0 while q: cur,cnt=q.popleft() for a in adj[cur]: if vis[a]!=-1: continue vis[a]=cnt+1 q.append([a,vis[a]]) return vis.count(max(vis))