1197번 최소 스패닝 트리는 단순히 최소 스패닝 트리를 구하는 거고, 1647번은 최소 스패닝 트리를 구해서 마지막에 추가한 간선만 빼주는 문제였습니다
입력의 경우 1197번은 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)이었고, 1647번은 각각 그보다 10배씩 많은 N은 정점의 개수 V(2 ≤ V ≤ 100,000)와 간선의 개수 E(1 ≤ E ≤ 1000,000)였습니다.
따라서 메모리 초과가 난다면 1647번일 것이라 생각했는데, 1197번에서만 메모리 초과 또는 런타임 에러 (InvalidPointer)가 났습니다...!!
1647에 제출한 코드를 그대로 답 부분 출력만 바꿔 주고 1197에 제출했는데, 1197이 메모리 초과가 나는 이유가 뭘까요?ㅜㅜ
cyj89317 2년 전
1647번 도시 분할 계획을 크루스칼 알고리즘(union-find 사용)으로 풀었습니다.
1197번 최소 스패닝 트리는 단순히 최소 스패닝 트리를 구하는 거고, 1647번은 최소 스패닝 트리를 구해서 마지막에 추가한 간선만 빼주는 문제였습니다
입력의 경우 1197번은 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)이었고, 1647번은 각각 그보다 10배씩 많은 N은 정점의 개수 V(2 ≤ V ≤ 100,000)와 간선의 개수 E(1 ≤ E ≤ 1000,000)였습니다.
따라서 메모리 초과가 난다면 1647번일 것이라 생각했는데, 1197번에서만 메모리 초과 또는 런타임 에러 (InvalidPointer)가 났습니다...!!
1647에 제출한 코드를 그대로 답 부분 출력만 바꿔 주고 1197에 제출했는데, 1197이 메모리 초과가 나는 이유가 뭘까요?ㅜㅜ