교대최소제곱법
[코테준비] 메모리 초과 해결 본문
백준 1967번
# 메모리 초과
tree = [[0 for _ in range(N+1)] for _ in range(N+1)]
for _ in range(N-1):
s, e, d = map(int, input().split())
tree[s][e] = tree[e][s] = d
# 메모리 초과 해결
tree = [[] for _ in range(N+1)]
for _ in range(N-1):
s, e, d = map(int, input().split())
tree[s].append([e, d])
tree[e].append([s, d])
무의식적으로 graph를 그렸는데 n이 10000이라 메모리초과가 났다
참고자료
https://programmers-story.tistory.com/10
[백준 알고리즘] 메모리 초과 발생 이유 및 해결 방안
문제를 푸시다보면 다양한 에러를 만나실텐데요. 오늘은 백준알고리즘 1697번을 풀면서 발생한 메모리 초과에 대해서 글을 써보려고 합니다. 메모리 초과가 발생하는 이유를 간단히 말씀드리자
programmers-story.tistory.com
메모리 초과가 나는 가장 큰 이유
1. 너무 많은 변수들을 배열 등에 저장할 경우.
2. DFS 등에서 재귀적 호출을 통해 너무 많은 함수들을 호출할 경우.
* int = 4Byte
'코딩테스트' 카테고리의 다른 글
[백준 파이썬 1629번 곱셈] 분할 정복 (0) | 2023.09.12 |
---|---|
[백준 파이썬 11404번 플로이드] 플로이드 워셜 알고리즘 (0) | 2023.09.12 |
[코테준비] 순열, 조합, 백트래킹 (0) | 2023.09.11 |
[코테준비] 분할정복, DP, 그리디 (0) | 2023.09.09 |
[코테준비] 다익스트라 알고리즘, 벨만-포드 알고리즘 (0) | 2023.09.09 |