한량처럼 살고 싶다

[SWEA] 창용 마을 무리의 개수 (python) 본문

PS/SWEA

[SWEA] 창용 마을 무리의 개수 (python)

투영 2024. 1. 13. 17:34

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWngfZVa9XwDFAQU

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

dfs로 풀었더니 런타임이 떴다. bfs로 수정했더니 정답이 되었는데 이유를 모르겠다...

from collections import deque
 
T = int(input())
 
def bfs(start):
    global visit
 
    q = deque()
    q.append(start)
    visit[start] = True
 
    while q:
        now = q.popleft()
        for p in graph[now]:
            if not visit[p]:
                q.append(p)
                visit[p] = True
         
for t in range(T):
    people, relationship = map(int, input().split())
 
    graph = [[] for _ in range(people+1)]
    visit = [False] * (people+1)
    answer = 0
 
    for i in range(relationship):
        a, b = map(int, input().split())
        graph[a].append(b)
        graph[b].append(a)
     
    for i in range(1, people+1):
        if not visit[i]:
            bfs(i)
            answer += 1
 
    print(f"#{t+1} {answer}")

 

'PS > SWEA' 카테고리의 다른 글

[SWEA] 파리 퇴치 (python)  (0) 2024.02.02
1206. [S/W 문제해결 기본] 1일차 - View(Python)  (0) 2023.10.19
1859. 백만 장자 프로젝트(Python)  (0) 2023.10.19
2072. 홀수만 더하기(Python)  (0) 2023.10.19