홍우진의 개발 일기장
[백준] 2606번: 바이러스/ 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/2606
풀이 코드
n = int(input())
m = int(input())
graph = [[]*n for _ in range(n+1)]
for _ in range(m):
a,b = map(int,input().split())
graph[a].append(b)
graph[b].append(a)
cnt = 0
visited = [0]*(n+1)
def dfs(start):
global cnt
visited[start] = 1
for i in graph[start]:
if visited[i]==0:
dfs(i)
cnt +=1
dfs(1)
print(cnt)
코드 해석
2차원 리스트를 만든 후 a번째 리스트에 b을 삽입, b번째 리스트에 a를 삽입을 반복하여 저장한다.
수를 세기 위한 2차원 리스트를 하나 더 만든다.
그 후 바이러스에 걸린 경로를 dfs방식으로 비교해가며 찾아간다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1543번: 문서 검색/ 파이썬 (0) | 2022.07.29 |
---|---|
[백준] 11726번: 2×n 타일링/ 파이썬 (0) | 2022.07.28 |
[백준] 17219번: 비밀번호 찾기/ 파이썬 (0) | 2022.07.26 |
[백준] 1302번: 베스트셀러/ 파이썬 (2) | 2022.07.25 |
[백준] 1049번: 기타줄/ 파이썬 (0) | 2022.07.25 |
Comments