[BOJ] 2606

nerry·2022년 2월 9일
0

알고리즘

목록 보기
38/86

문제

me

import sys
input = sys.stdin.readline
c=int(input())
n=int(input())
edge={}
for i in range(1,c+1):
    edge[i]=[]
for _ in range(n):
    i,j=map(int,input().split())
    edge[i].append(j)
    edge[j].append(i)
def dfs():
	need=[1]
    visit=[1]
    cnt=-1
    while need:
        now=need.pop(0)
        cnt+=1
        for e in edge[now]:
            if e not in visit:
                need.append(e)
                visit.append(e)
    return cnt

print(dfs())

solution

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)

출처

n = int(input())
t = int(input())
s = [[0] * n for i in range(n)]
visit = [0 for i in range(n)]
for i in range(t):
    a, b = map(int, input().split())
    s[a - 1][b - 1] = 1
    s[b - 1][a - 1] = 1
def dfs(v):
    visit[v] = 1
    for i in range(n):
        if s[v][i] == 1 and visit[i] == 0:
            dfs(i)
dfs(0)
cnt = 0
for i in range(1, n):
    if visit[i] == 1:
        cnt += 1
print(cnt)

출처

profile
터벅터벅 개발(은좋은)자 로그

0개의 댓글