본문 바로가기

BFS20

[python] 13549. 숨바꼭질 3 문제 출처 13549. 숨바꼭질 3 풀이 N, K = map(int,input().split()) if N > K: print(N-K) elif N == K: print(0) else: time = 0 length = min(100001, K*2+1) visited = [0]*length q = [] if N == 0: visited[0] = 1 q.append(0) else: now = N while now K: if 0 2019. 8. 19.
[python] 12851. 숨바꼭질 2 문제 출처 12851. 숨바꼭질 2 풀이 N, K = map(int, input().split()) time = 0 visited = [0] * 100001 cnt = [0] * 100001 q = [N] visited[N] = 1 cnt[N] = 1 while 1: if visited[K]: break nxt = [] for i in q: if i > K: if not visited[i-1]: nxt.append(i-1) cnt[i-1] += cnt[i] else: for j in (-1, 1, i): if 0 2019. 8. 19.
[python] 6118. 숨바꼭질 문제 출처 6118. 숨바꼭질 풀이 N, M = map(int, input().split()) cabins = [[] for _ in range(N+1)] for _ in range(M): a, b = map(int, input().split()) cabins[a].append(b) cabins[b].append(a) visited = [0] * (N+1) d, now = 0, [1] visited[1] = 1 while 1: nxt = [] for i in now: for j in cabins[i]: if visited[j]: continue nxt.append(j) visited[j] = 1 if nxt: now = nxt d += 1 else: print(min(now), d, len(now)) b.. 2019. 8. 19.
[python] 14500. 테트로미노 문제 출처 14500. 테트로미노 풀이 N, M = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] def others(x, y, visited, sum_): global max_ if len(visited) == 4: max_ = max(max_, sum_) return for dx, dy in (1, 0), (0, 1), (-1, 0), (0, -1): nx, ny = x+dx, y+dy if nx = M or ny = N: continue if (nx, ny) in visited: continue others(nx, ny, visited+[(nx, ny)], .. 2019. 8. 4.