-문제: https://www.acmicpc.net/problem/2606

dfs로 풀고 싶어서 dfs로 풀었는데 전역번수 cnt 위치를 잘못 지정해서 틀렸던 문제다

 

-정답풀이: 

def dfs(s,v,visited):
    global cnt
    visited[v]=True    
    for i in s[v]:
        if not visited[i]:
            cnt+=1
            dfs(s,i,visited)

n=int(input())
con=int(input())
s=[[] for _ in range(n+1)]
visited=[False]*(n+1)
cnt=0
for _ in range(con):
    a,b=map(int,input().split())
    s[a].append(b)
    s[b].append(a)
    s[a].sort()
    s[b].sort()
    
dfs(s,1,visited)
print(cnt)

-틀린풀이: 

밑의 4번 라인에 있는 cnt+=1을 if not visited[i]: 다음으로 넘겼더니 바로 정답이 나왔다

1번과 연결되어 있는 것 중에 방문한 것들을 모두 세야하므로 for문 안에 cnt+=1를 넣어줘야한다

+ Recent posts