https://www.acmicpc.net/problem/11724
내 코드
import sys
sys.setrecursionlimit(10000)
def dfs(graph,v,visited):
visited[v] = True
for i in graph[v]:
if visited[i] == False:
dfs(graph,i,visited)
N,M = map(int,input().split())
graph = [[] for _ in range(N+1)]
visited = [False]*(N+1)
visited[0] = True
for _ in range(M):
l,r = map(int,sys.stdin.readline().split())
graph[l].append(r)
graph[r].append(l)
cnt=0
for i in range(1,N+1):
if visited[i] == False:
dfs(graph,i,visited)
cnt+=1
print(cnt)
sys.stdin.readline()을 사용해야지 시간초과가 안난다.
반복문을 사용할때는 input대신 이걸 사용해야지 시간절약이 많이 된다고한다.
'코딩테스트 > Python' 카테고리의 다른 글
[Python] 프로그래머스 - 나머지가 1이 되는 수 찾기 (0) | 2021.11.17 |
---|---|
[Python] 백준 1476 - 날짜 계산 (0) | 2021.11.17 |
[Python] 백준 1260 - DFS와 BFS (0) | 2021.11.16 |
[Python] 백준 14719 - 빗물 (0) | 2021.11.16 |
[프로그래머스] 캐시 (0) | 2021.10.17 |