본문 바로가기

알고리즘

[백준] 2606번: 바이러스

https://www.acmicpc.net/problem/2606

 

2606번: 바이러스

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어

www.acmicpc.net

 

간단한 재귀함수로 풀었다.

코딩 테스트를 준비할 일이 생겨서 파이썬을 오랜만에 사용하였는데 훨씬 간단하게 풀 문법들을 다시 공부해야겠다.

 

 

# 7
# 6
# 1 2
# 2 3
# 1 5
# 5 2
# 5 6
# 4 7

def ps(x,arr,cnt,total):
    global m
    cnt[x] = 1
    for i in range(0,m):
        if arr[i][0] == x and cnt[arr[i][1]] == 0:
            ps(arr[i][1],arr,cnt,total+1)
        if arr[i][1] == x and cnt[arr[i][0]] == 0:
            ps(arr[i][0],arr,cnt,total+1)


n = int(input())
m = int(input())
arr = []
cnt = [0 for i in range(0,n+1)]

for i in range(0,m):
    arr.append(list(map(int,input().split())))

ps(1,arr,cnt,1)

print(sum(cnt)-1)

'알고리즘' 카테고리의 다른 글

[백준] 7576번: 토마토  (0) 2022.02.02
[백준] 2178번: 미로 탐색  (0) 2022.01.31
[백준] 1260번: DFS와 BFS  (0) 2022.01.30
[백준] 1012번:유기농 배추  (0) 2022.01.30
[Algorithm-swift] 두 개 뽑아서 더하기  (0) 2021.12.28