2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍
www.acmicpc.net
내 풀이:
computers = int(input()) # 전체 컴퓨터의 수
n = int(input()) #직접 연결되어 있는 컴퓨터 쌍의 수
#인접리스트로 만들기!
list=[[] for _ in range(computers+1)]
#이차원 리스트 초기화
for i in range(n):
a, b = map(int, input().split())
list[a].append(b)
list[b].append(a)
#각각의 노드에 연결된 노드들의 정보를 기록
#dfs 함수
connected=[] #1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터들을 추가할 곳
def dfs(x):
global connected
for i in list[x]:
if i!=1 and i not in connected:
connected.append(i)
dfs(i)
return len(connected)
print(dfs(1))
'알고리즘 PS > Graph' 카테고리의 다른 글
백준 #11725 트리의 부모찾기 (파이썬) (0) | 2024.09.09 |
---|---|
프로그래머스 - 순위 (플로이드 워셜 이용) (1) | 2024.06.14 |
그래프 - 가장 먼 노드, 1791. Find Center of Star Graph (0) | 2024.06.12 |
백준 #2178번 미로 탐색 (0) | 2024.02.02 |