백준_2606_바이러스

임정민·2023년 1월 6일
2

알고리즘 문제풀이

목록 보기
14/173
post-thumbnail

코딩테스트 연습 스터디 진행중 입니다. ✍✍✍
Notion : https://www.notion.so/1c911ca6572e4513bd8ed091aa508d67

문제

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

[나의 풀이]

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)

[팀원의 풀이]

# coding = utf-8

if __name__ == '__main__':
    import sys

    input = sys.stdin.readline
    from collections import deque
    from itertools import *


    def getdata():
        n = int(input())
        m = int(input())
        board = list(list(map(int, input().split())) for _ in range(m))
        return n, m, board

    n, m, board = getdata()
    gp = dict()
    for i in range(1,n+1) :
        gp[i] = list()
    for e in board :
        gp[e[0]].append(e[1])
        gp[e[1]].append(e[0])
    print(gp)

    def bfs(gp, s) :
        need_visited, visited = deque(), deque()
        need_visited.append(s)
        while need_visited :
            node = need_visited.pop()
            if node not in visited :
                visited.append(node)
                need_visited.extend(gp[node])
        return len(visited)

    print(bfs(gp,1)-1)
profile
https://github.com/min731

0개의 댓글