연구소 (bfs/dfs)
파이썬은 combinations을 활용하면 쉽게 풀수 있습니다. 저는예전 c++로 n과 m시리즈를 풀었던 걸 기억하면서 dfs 함수로 짜보고 싶어서 해당 방식으로 풀어봤습니다. 복습을 하고 좋았습니다. dfs로 벽을, bfs로 벽이 3개가 되었을때 바이러스를 퍼지게 한후 안전영역을 확인하면 해결 가능합니다. from collections import deque n, m = map(int, input().split()) board = [[0]*m for _ in range(n)] mx = 0 dx = [1,-1,0,0] dy = [0,0,-1,1] visited= [[0]* m for _ in range(n)] for i in range(n): lines = list(map(int, input().spli..
2021. 6. 17.
경쟁적 전염 (bfs , 우선순위큐)
heapq를 통해 우선순위를 처리해주었고 s라는 시간을 처리하기 위해 큐 두개를 만들어 시간이 1초씩 지날때마다 한쪽을 비우고 다른 큐에 넣게를 반복해 s의 1초씩을 처리해주었습니다. from collections import deque import heapq n , k = map(int,input().split()) board = [[0]*n for _ in range(n)] dx = [1,-1,0,0] dy = [0,0,1,-1] for i in range(n): lines = list(map(int,input().split())) for j in range(n): board[i][j]= lines[j] s, x, y = map(int, input().split()) def bfs(s): global..
2021. 6. 17.