-문제: 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를 넣어줘야한다
'백준 > Search' 카테고리의 다른 글
[백준/bfs] 7569번: 토마토 (0) | 2022.02.17 |
---|---|
[백준/bfs,dfs] 4963번: 섬의 개수(발전한 부분) (0) | 2022.02.17 |
[백준/bfs] 14502번: 연구실(다시->해결) (0) | 2022.02.16 |
[백준/bfs] 11724번: 연결요소의 개수 (0) | 2022.02.16 |
[백준/dfs] 2667번: 단지번호 붙이기 (0) | 2022.02.14 |