Coding Test/백준
-
[백준] 2606번 바이러스 (python 파이썬)Coding Test/백준 2022. 2. 16. 23:42
깊이우선탐색(dfs)로 해결 n_computer = int(input()) # 컴퓨터의 수 n_connection = int(input()) # 연결의 수 # 빈 인접 행렬 생성 # 노드가 1부터 시작하므로 인덱스가 0인 경우 무시하고 1부터 시작하기 위해 +1 해줌 graph = [[] for _ in range(n_computer+1)] # 연결된 컴퓨터의 번호 쌍 입력 받기 for i in range(n_connection): idx, val = map(int, input().split()) # 인접 행렬 생성 graph[idx].append(val) graph[val].append(idx) visited = [False]*(n_computer+1) def dfs(visited, v, graph):..
-
[백준] 2667번 단지번호붙이기 (python 파이썬)Coding Test/백준 2022. 2. 16. 23:32
2667번: 단지번호붙이기 깊이우선탐색(dfs)로 해결 N = int(input()) # 지도의 크기 N 입력 받기 graph = [] for i in range(N): graph.append(list(map(int, input()))) # 0 or 1 입력 받기 # dfs 함수 정의하는 부분 # return은 [단지 내 아파트의 개수, 단지의 경우 True 반환] def dfs(x, y, li): # 지도 범위를 벗어나면 안 되므로 if x=N or y=N: return [0, False] # 1인 경우 아파트이므로 방문 if graph[x][y]==1: # 여기서 li는 단지 내 아파트의 개수를 구하기 위해 사용됨 li.append(1) # 아파트에 방문했으므로 li 리스트에 1을 저장 graph[x..