[백준] 2606번 바이러스 - 파이썬

2021. 8. 17. 11:46·알고리즘 공부/BFS & DFS

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

 

2606번: 바이러스

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

www.acmicpc.net

 

from collections import deque

n = int(input())
m = int(input())
graph = [[0]*(n+1) for i in range(n+1)]
visit = [0]*(n+1)
for i in range(m):
    line = list(map(int,input().split()))
    graph[line[1]][line[0]] =1
    graph[line[0]][line[1]] =1

def bfs(start,graph,visit):
    visit[start] = 1
    com=deque()
    com.append(start)
    cnt =0
    while com:
        v=com.popleft()

        for i in range(len(graph[v])):
            if visit[i] != 1 and graph[v][i] ==1 :
                com.append(i)
                visit[i] = 1
                cnt += 1
    return cnt

print(bfs(1,graph,visit))

bfs 로 풀었는데 dfs 로 풀어도 될거 같은 느낌...?

 

https://jiwon-coding.tistory.com/93

 

[백준] 2606번 바이러스 / 파이썬(python)

# 문제 링크 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트

jiwon-coding.tistory.com

dfs  로 풀어도됨

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)

그래프 만드는 방식도 고려해도 될거 같다.

반응형

'알고리즘 공부 > BFS & DFS' 카테고리의 다른 글

[백준] 1012번 유기농 배추 - 파이썬  (0) 2021.08.18
[백준] 2606번 단지번호붙이기 - 파이썬  (0) 2021.08.17
[백준] 1260번 DFS와 BFS- 파이썬  (0) 2021.08.17
BFS "너비 우선 탐색" 알고리즘  (0) 2021.03.31
DFS 깊이 우선 탐색 알고리즘  (0) 2021.03.31
'알고리즘 공부/BFS & DFS' 카테고리의 다른 글
  • [백준] 1012번 유기농 배추 - 파이썬
  • [백준] 2606번 단지번호붙이기 - 파이썬
  • [백준] 1260번 DFS와 BFS- 파이썬
  • BFS "너비 우선 탐색" 알고리즘
코딩 코딩 코오딩
코딩 코딩 코오딩
  • 코딩 코딩 코오딩
    코딩하는 누누
    코딩 코딩 코오딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (491)
      • 생산성 (2)
        • 인텔리제이 (2)
      • 프로젝트 기록 (14)
        • git (2)
        • spring (3)
        • TestCode (2)
        • spring security (3)
        • 기타 (2)
        • MySQL (0)
        • Cloud (2)
      • 회고 (4)
      • Spring (6)
      • JPA (0)
      • DB (4)
        • MySql (2)
        • Redis (1)
      • Java (7)
        • JSP (1)
      • 잡담 (1)
      • CS (30)
        • 컴퓨팅 사고 (0)
        • 배열 (4)
        • 알고리즘 (8)
        • 메모리 (7)
        • 자료구조 (9)
        • 암호학 (2)
      • opencv (14)
      • AI (56)
        • 머신러닝 (2)
        • 딥러닝 (7)
        • tensorflow (3)
        • 머신러닝(딥러닝) 정리 (21)
        • 강화학습 (7)
        • 논문 읽기 (1)
        • 잡동사니 (1)
        • python AI (13)
        • 선형대수 (1)
        • 확률론 (0)
      • 알고리즘 공부 (177)
        • 그래프 이론 (0)
        • 다익스트라 (4)
        • 위상정렬 (3)
        • 신장트리-크루스칼 알고리즘 (4)
        • 플로이드 워셜 (3)
        • 이진탐색 (9)
        • 백트래킹 (11)
        • 부르드포스 (9)
        • 다이나믹 프로그래밍 (20)
        • BFS & DFS (24)
        • 그리디 (6)
        • 구현 (15)
        • 정렬 (3)
        • 기타 (62)
        • 수학? (1)
      • 코딩 (173)
        • 파이썬(python) (15)
        • c언어 (13)
        • 프로그래머스 lv1 (46)
        • 프로그래머스 lv2 (41)
        • 백준 - c++ (49)
        • Softeer (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    큐
    알고리즘
    정렬
    코딩
    C언어 기초
    순차 탐색
    소수찾기
    BFS
    프로그래머스
    다이나믹 프로그래밍
    DFS
    c언어
    if문
    이미지처리
    코딩기초
    스택
    백준
    에라토슽네스의 체
    선택정렬
    캘리브레이션
    인접리스트
    왜곡보정
    그리디
    인접행렬
    자료구조
    코딩기초스킬
    코딩테스트
    코딩문제
    삽입 정렬
    n진법 변환
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩 코딩 코오딩
[백준] 2606번 바이러스 - 파이썬
상단으로

티스토리툴바