2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
DFS로 탐색
- 인접행렬과 방문흔적 남기는 배열을 생성한다
- 방문하지 않았고, 연결되있는 것들을 체크한다.
import sys input = sys.stdin.readline N = int(input()) answer = 0 def dfs(x): global answer for i in range(N+1): if matrix[x][i] == 1 and check[i] == 0: answer += 1 matrix[x][i] = 0 matrix[i][x] = 0 check[i] = 1 dfs(i) check = [0]*(N+1) status = [0]*(N+1) matrix = [[0]*(N+1) for _ in range(N+1)] pair_N = int(input()) for _ in range(pair_N): x, y = map(int, input().split()) matrix[x][y] = 1 matrix[y][x] = 1 check[1] = 1 dfs(1) print(answer)
'개발 > 알고리즘' 카테고리의 다른 글
[백준 11724] 연결 요소의 개수 (python) (0) | 2021.03.19 |
---|---|
[백준 2630] 색종이 만들기 (python) (0) | 2021.03.19 |
[백준 1931] 회의실 배정 (python) (1) | 2021.03.18 |
[백준 11723] 집합 (python) (0) | 2021.03.18 |
[백준 1541] 잃어버린 괄호 (python) (0) | 2021.03.18 |
최근댓글