본문 바로가기
카테고리 없음

[백준][파이썬] 2606 바이러스(DFS-Depth First Search)

by titaniumm 2020. 3. 29.

사실 3번째 도전이였다..

처음 DFS가 잘 모르는 상태에서 문제를 풀려고 했을때, 너무 어렵게 느껴졌고

DFS 개념을 보고 다시 문제를 풀려했을때도 어려웠다.

근데 분할정복, N과M 시리즈, 별찍기를 풀고

DFS 기본문제인 배추문제와 텀프로젝트 문제를 풀고 다시 돌아왔더니 너무 쉽게 풀려서 당황했다.

 

역시 지금 단계(실력)에서는 많은 고민 보다는 코드의 구조를 공부하고 변형하는 연습을 많이하는것이

실력 상승에 도움이 될것같다.

num = int(input())
case = int(input())
lit = [[0 for i in range(num)] for j in range(num)]
for i in range(case):
    x,y =map(int,input().split())
    lit[x-1][y-1] = 1
    lit[y-1][x-1] = 1
visited = [False for i in range(num)]

def recu(numt):
    visited[numt] = True
    for i in range(num):
        if lit[numt][i] ==1:
            lit[numt][i] =0
            recu(i)
    return

recu(0)
print(visited.count(True)-1)

댓글