코딩테스트 연습 스터디 진행중 입니다. ✍✍✍
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)