🔑알고리즘/baekjoon

백준 2606번 : 바이러스 python 문제 풀이 (bfs 알고리즘)

2022. 8. 18. 17:36
반응형

 

백준 2606 문제입니다.

 

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

 

2606번: 바이러스

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

www.acmicpc.net

 

 

 

문제 보기의 그래프를 1을 중심으로 다시 그려보면 이와 같아집니다. 1번 컴퓨터가 바이러스가 걸렸을 때, 같이 걸린 컴퓨터의 수를 구하는 문제였습니다. 

 

입력

문제의 입력은 [ [ ] , [ 2 , 5 ] , [ 1 , 3 , 5 ] , [ 2 ] , [ 7 ] , [ 1 , 2 , 6 ] , [ 5 ] , [ 4 ] ] 이와 같이 이차원 배열의 형태로 받을 예정입니다.

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

 

출력

4

 

 

 

저는 bfs를 사용하여 문제를 해결했습니다. bfs나 dfs 둘 중 하나 편하신 것을 골라서 문제 푸시면 됩니다.

 

computer = int(input())
n = int(input())

node_visited = [[] * _ for _ in range(computer + 1)]

for i in range(n):
    a, b = map(int, input().split())
    node_visited[a].append(b)
    node_visited[b].append(a)


def bfs(node_visited,start):
    visited, need_visited = [], []
    need_visited.append(start)

    while need_visited:
        node = need_visited[0]
        del need_visited[0]

        if node not in visited:
            visited.append(node)
            need_visited.extend(node_visited[node])
    return visited


print(len(bfs(node_visited,1)) - 1)

 

extend() 함수는 [1, 2, 3] 과 같이 리스트 형태로 존재하여도 리스트 안에 넣을 때, 1, 2, 3 의 형태로 분리되어 넣어주는 함수입니다. 

append() 함수는 [1, 2, 3] 이면 [1, 2, 3] 으로 삽입됩니다. 

반응형
저작자표시 (새창열림)

'🔑알고리즘 > baekjoon' 카테고리의 다른 글

백준 1303 : 전투 파이썬 문제 풀이(bfs 알고리즘 사용)  (0) 2022.08.24
백준 1012 : 유기농 배추 파이썬 풀이(bfs 알고리즘)  (0) 2022.08.21
백준 16435 : 스네이크 버드 파이썬 정답 풀이  (0) 2022.08.04
백준 10974 : 모든 순열 파이썬 정답 풀이  (0) 2022.08.03
백준 2309 : 일곱 난쟁이 파이썬 정답 풀이 (combinations의 활용)  (0) 2022.08.03
'🔑알고리즘/baekjoon' 카테고리의 다른 글
  • 백준 1303 : 전투 파이썬 문제 풀이(bfs 알고리즘 사용)
  • 백준 1012 : 유기농 배추 파이썬 풀이(bfs 알고리즘)
  • 백준 16435 : 스네이크 버드 파이썬 정답 풀이
  • 백준 10974 : 모든 순열 파이썬 정답 풀이
pkyung
pkyung
pkyung
성장하는 중
pkyung
전체
오늘
어제
  • 분류 전체보기
    • 🏆토이 프로젝트에서 생긴 일
    • 🤿백엔드 내실 채우기
    • 🍫카카오 테크 캠퍼스 2기 BE
    • 🍀spring
      • 스프링 입문
      • 스프링 핵심원리 기본
      • 스프링 jpa
      • 🐛debug
    • 🔒보안
    • 🌎infra
      • docker
      • kubernetes
      • cloud
    • 🌐web
      • HTTP 웹 기본 지식
    • 🔑알고리즘
      • baekjoon
      • programming language
    • 🎞️프로젝트
      • android
      • flutter
    • 📚수업
      • 교양과목
    • 💾database
    • ⚙settings
    • 2023 여름 모각코 - 절개와지조
    • 2024 겨울 모각코 - 내 장점은 algorit..

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Docker
  • python
  • JPA
  • 소수
  • 카테캠
  • 스프링부트
  • 파이썬
  • mysql
  • 문자열
  • Java
  • 김영한
  • 자바문자열
  • BFS
  • 스택
  • 객체지향의사실과오해
  • 데이터베이스
  • springboot
  • 백준
  • HTTP
  • 카카오테크캠퍼스
  • sql
  • 코드리뷰
  • 스프링
  • spring
  • Security
  • 스프링기본
  • 객체지향
  • 자바
  • nginx
  • be

최근 댓글

최근 글

hELLO · Designed By 정상우.
pkyung
백준 2606번 : 바이러스 python 문제 풀이 (bfs 알고리즘)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.