kruskal BOJ 2887 : 행성 터널 - C++ 메모리 초과 원인 모든 planet 간의 간선과 비용을 모두 구해서 edges에 넣었기 때문! 핵심 planet간 cost는 min(a.x - b.x, a.y - b.y, a.z - b.z)이다. 즉, x축 / y축 / z축으로 각각 정렬해서 서로 인접한 planet간의 경로만 비교해주면 된다 왜? 어차피 각 축을 기준으로 인접한 행성으로 연결될 수 밖에 없음 --> MST니까 (최소 신장 ... kruskalbojgoldboj [BOJ] 17472 다리 만들기 2 - JAVA 섬끼리 연결하는 다리는 직선으로 가로 또는 세로만 만들 수 있고 길이는 2 이상이어야 한다 모든 섬을 연결하는 다리 길이의 최솟값 구하기 지도에 있는 섬을 파악하기 위해 BFS를 사용해서 섬의 가장자리(값이 1이면서 상하좌우 중 하나라도 0) Point 들을 Island 객체 하나에 저장 Island 객체들 간의 Point 를 비교하여 수직 수평에 있는 점들 사이의 거리를 구하여 2 이상인 ... BFSkruskalbojBFS [알고리즘 개념] 최소신장트리(MST)-Kruskal [알고리즘 개념] 최소신장트리(MST)-Kruskal 개념 탐욕적인 방법으로 최소신장트리를 구한다 순서 간선들의 가중치를 오름차순으로 정렬한다 정렬된 간선들의 리스트에서 사이클을 형성하지 않는 간선을 찾아 현재의 최소비용 신장트리의 집합에 추가한다 실제로 사이클을 알기 위해서는 연결하려는 간선의 양 끝점이 동일한 집합에 없는지를 체크해야 한다. 이를 위해서 union-find 알고리즘을 사용... MSTalgorithmkruskalMST BOJ 1674 : 도시 분할 계획 - C++ 핵심 아이디어 두개의 마을로 나눌 때 어차피 하나의 간선을 끊어야 한다 즉, 가장 cost가 큰 간선을 끊으면 최소값을 구할 수 있다 Kruskal 알고리즘의 시간복잡도 O(ElogV) : E은 간선의 개수 Prim 알고리즘의 시간복잡도 O(V^2) : V은 노드의 개수 priority queue로 구현 : O(ElogV)... kruskalbojgoldboj [백준]#2887 행성 터널 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(xA, yA, zA)와 B(xB, yB, zB)를 터널로 연결할 때 드는 비용은 min(|xA-xB|, |yA-yB|, |zA-zB|)이다. 민혁... 백준kruskalalgorithmMSTMST [BUAA 933] 옹색한 시뮬레이션 도시. [BUAA 933] 옹색한 시뮬레이션 도시. 최소 생성 트리 Kruskal 양방향 경로에 주의하세요. 코드는 다음과 같다.... 최소 스패닝 트리kruskal
BOJ 2887 : 행성 터널 - C++ 메모리 초과 원인 모든 planet 간의 간선과 비용을 모두 구해서 edges에 넣었기 때문! 핵심 planet간 cost는 min(a.x - b.x, a.y - b.y, a.z - b.z)이다. 즉, x축 / y축 / z축으로 각각 정렬해서 서로 인접한 planet간의 경로만 비교해주면 된다 왜? 어차피 각 축을 기준으로 인접한 행성으로 연결될 수 밖에 없음 --> MST니까 (최소 신장 ... kruskalbojgoldboj [BOJ] 17472 다리 만들기 2 - JAVA 섬끼리 연결하는 다리는 직선으로 가로 또는 세로만 만들 수 있고 길이는 2 이상이어야 한다 모든 섬을 연결하는 다리 길이의 최솟값 구하기 지도에 있는 섬을 파악하기 위해 BFS를 사용해서 섬의 가장자리(값이 1이면서 상하좌우 중 하나라도 0) Point 들을 Island 객체 하나에 저장 Island 객체들 간의 Point 를 비교하여 수직 수평에 있는 점들 사이의 거리를 구하여 2 이상인 ... BFSkruskalbojBFS [알고리즘 개념] 최소신장트리(MST)-Kruskal [알고리즘 개념] 최소신장트리(MST)-Kruskal 개념 탐욕적인 방법으로 최소신장트리를 구한다 순서 간선들의 가중치를 오름차순으로 정렬한다 정렬된 간선들의 리스트에서 사이클을 형성하지 않는 간선을 찾아 현재의 최소비용 신장트리의 집합에 추가한다 실제로 사이클을 알기 위해서는 연결하려는 간선의 양 끝점이 동일한 집합에 없는지를 체크해야 한다. 이를 위해서 union-find 알고리즘을 사용... MSTalgorithmkruskalMST BOJ 1674 : 도시 분할 계획 - C++ 핵심 아이디어 두개의 마을로 나눌 때 어차피 하나의 간선을 끊어야 한다 즉, 가장 cost가 큰 간선을 끊으면 최소값을 구할 수 있다 Kruskal 알고리즘의 시간복잡도 O(ElogV) : E은 간선의 개수 Prim 알고리즘의 시간복잡도 O(V^2) : V은 노드의 개수 priority queue로 구현 : O(ElogV)... kruskalbojgoldboj [백준]#2887 행성 터널 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(xA, yA, zA)와 B(xB, yB, zB)를 터널로 연결할 때 드는 비용은 min(|xA-xB|, |yA-yB|, |zA-zB|)이다. 민혁... 백준kruskalalgorithmMSTMST [BUAA 933] 옹색한 시뮬레이션 도시. [BUAA 933] 옹색한 시뮬레이션 도시. 최소 생성 트리 Kruskal 양방향 경로에 주의하세요. 코드는 다음과 같다.... 최소 스패닝 트리kruskal