위 문제는 N개 노드의 간선이 될 수 있는 모든 경우의 수를 판단해 준 후, 크루스칼 알고리즘을 활용하려 했다.
하지만 N의 갯수가 최대 10만이기 떄문에 N(N-1)과 같은 방식으론 해결할 수 없다.
이를 해결한 풀이는 다음과 같다.
x, y, z를 각각 나눠서 생각해본다.
x=[]에는 x값을 정렬한 후, 거리를 계산한 값만 추가한다.
y, z, 도 방금 한 x와 똑같이 수행한다.
그 후 data배열에 다 추가한다. 그럼 완벽히 최소 값부터 정렬된 것은 아니겠지만, 그래도 x, y, z의 각각 자신이 갖고 있는 최소값을 추가해주는 상황이다.
'개발 > 알고리즘' 카테고리의 다른 글
[BOJ] 좋은수열_2661 (0) | 2021.04.08 |
---|---|
[BOJ] 차이를 최대로_10819 (0) | 2021.04.06 |
[알고리즘] 크루스칼 (0) | 2021.03.30 |
[알고리즘] 유니온 파인드(Union-Find) (0) | 2021.03.29 |
[알고리즘] 다익스트라 (0) | 2021.03.28 |