Notice
Recent Posts
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
관리 메뉴

교대최소제곱법

[코테준비] 메모리 초과 해결 본문

코딩테스트

[코테준비] 메모리 초과 해결

옐라크레 2023. 9. 11. 19:08

백준 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