황소개발자

백준 11724 파이썬 python : 연결 요소의 개수 @@황소처럼 우직하게@@ 런타임에러 해결, 시간초과 해결 본문

백준 문제 풀이

백준 11724 파이썬 python : 연결 요소의 개수 @@황소처럼 우직하게@@ 런타임에러 해결, 시간초과 해결

hjp845 2020. 2. 21. 01:28
반응형

개떡같은 문제

import sys
sys.setrecursionlimit(10000000)
n, m = map(int, sys.stdin.readline().split())

adj = [[] for i in range(n + 1)]
visited = [False] * (n + 1)

for i in range(m):
    a, b = map(int, sys.stdin.readline().split())
    adj[a].append(b)
    adj[b].append(a)

def fake_dfs(v):
    visited[v] = True
    for i in adj[v]:
        if not(visited[i]):
            fake_dfs(i)

count = 0
for i in range(1, n + 1):
    if not(visited[i]):
        count += 1
        fake_dfs(i)
print(count)

아니다 훌륭한 문제다. 삽질 1시간하고 성장했다.

첫 번째, n * n 인접행렬 형태가 아니라 인접리스트로 구현해줘야된다. 이건 뭐 최적화에 필수다

(인접행렬 인접리스트 차이는 검색 ㄱㄱ)

두 번째, 재귀에 제한이(아마 디폴트 값이 1000) 걸리기 때문에 아래 코드 필수다 (재귀 제한을 설정하는 코드다)

(이걸로 런타임 에러 해결)

import sys
sys.setrecursionlimit(10000000)

그리고 마지막으로 ㅋㅋ, input()이 아니라 sys.stdin.readline() 이걸 쓰자.

(이걸로 시간초과 해결)

import sys
sys.stdin.readline()

아오..

반응형
Comments