코딩 테스트/Baekjoon S3 2606. 바이러스 - 728x90 문제 보기 : 2606번: 바이러스 문제 정답률 : 46% 작성 코드 def dfs(graph,start,visited): visited[start]=True answer = 1 for node in graph[start]: if not visited[node]: answer += dfs(graph,node,visited) return answer T = int(input()) n = int(input()) graph = {i+1:[] for i in range(T)} for _ in range(n): n1,n2 = map(int,input().split()) graph[n1].append(n2) graph[n2].append(n1) visited = [False]*(T+1) print(dfs(graph,1,visited)-1) 풀이 연결된 노드(컴퓨터)를 찾아야 하기에 dfs 알고리즘을 사용했고, 연결된 노드의 번호가 아닌 노드의 갯수를 구해야하기 때문에 함수 안에 answer라는 변수를 두었다. 그리고 단순 '연결'이기 때문에 graph[n1].append(n2) & graph[n2].append(n1)로 딕셔너리에 앞 뒤 값을 모두 append했다. 또 visited는 False/True로 두어 방문 여부를 확인하도록 했다. 320x100 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기DATA DIARY Contents 문제보기: 2606번:바이러스 문제 작성코드 풀이 당신이 좋아할만한 콘텐츠 S3 15649. N과 M (1) 2024.10.30 G5 7576. 토마토 2024.10.30 S3 1463. 1로 만들기 2024.10.25 S4 9012. 괄호 2024.10.23 댓글 0 + 이전 댓글 더보기