MST
-
[백준] 4386번 별자리 만들기문제 풀이 2020. 8. 22. 17:44
4386 별자리 만들기 문제도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것다. 별자리의 조건은 다음과 같다-별자리를 이루는 선은 서로 다른 두 별을 일직선으로 이은 형태이다.-모든 별들은 별자리 위의 선을 통해 서로 직/간접적으로 이어져 있어야 한다.별들이 2차원 평면 위에 놓여 있다. 선을 하나 이을 때마다 두 별 사이의 거리만큼의 비용이 든다고 할 때, 별자리를 만드는 최소 비용을 구하시오. 입력첫째 줄에 별의 개수 n이 주어진다. (1 ≤ n ≤ 100)둘째 줄부터 n개의 줄에 걸쳐 각 별의 x, y좌표가 실수 형태로 주어지며, 최대 소수점 둘째자리까지 주어진다. 좌표는 1000을 넘지 않는 양의 실수이다. 출력첫째 줄에 정답을 출력한다...
-
[백준] 1197번 최소 스패닝 트리문제 풀이 2020. 8. 22. 17:28
1197 최소 스패닝 트리 문제그래프가 주어졌을 때, 그 그래프의 최소 스패닝 트리를 구하는 프로그램을 작성하시오.최소 스패닝 트리는, 주어진 그래프의 모든 정점들을 연결하는 부분 그래프 중에서 그 가중치의 합이 최소인 트리를 말한다. 입력첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 가중치 C인 간선으로 연결되어 있다는 의미이다. C는 음수일 수도 있으며, 절댓값이 1,000,000을 넘지 않는다.그래프의 정점은 1번부터 V번까지 번호가 매겨져 있고, 임의의 두 정점 사이에 경로가 있다. 최소 스패닝 트리의 가중치가 ..
-
알고리즘 ch8 Greedy algotithm학교 수업/알고리즘 2020. 6. 15. 18:50
Optimization Problem- 여러개의 가능한 답 중에 가장 최적의 답 또는 최적의 답과 가까운 답을 고르는 문제- 비용을 최소화 한다거나 이익을 최대화 하는 답을 고르는 문제 Greedy Algorithm- 최적해를 구하는 데에 사용되는 근사적인 방법. - 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. (미래를 생각하지 않고 각 단계에서 최선의 선택을 함) Optimization problem 중 greedy 방법을 사용하는 문제1. Minimum Spanning Tree (MST) - Spanning tree 중 사용된 간선들의 가중치 합이 최소인 트리 즉, 그래프 내에 있는 모든 정점들을 가장 적은 수..
-
[프로그래머스] 지형이동문제 풀이 2020. 6. 5. 16:01
문제 설명N x N 크기인 정사각 격자 형태의 지형이 있습니다. 각 격자 칸은 1 x 1 크기이며, 숫자가 하나씩 적혀있습니다. 격자 칸에 적힌 숫자는 그 칸의 높이를 나타냅니다.이 지형의 아무 칸에서나 출발해 모든 칸을 방문하는 탐험을 떠나려 합니다. 칸을 이동할 때는 상, 하, 좌, 우로 한 칸씩 이동할 수 있는데, 현재 칸과 이동하려는 칸의 높이 차가 height 이하여야 합니다. 높이 차가 height 보다 많이 나는 경우에는 사다리를 설치해서 이동할 수 있습니다. 이때, 사다리를 설치하는데 두 격자 칸의 높이차만큼 비용이 듭니다. 따라서, 최대한 적은 비용이 들도록 사다리를 설치해서 모든 칸으로 이동 가능하도록 해야 합니다. 설치할 수 있는 사다리 개수에 제한은 없으며, 설치한 사다리는 철거하지..
-
MST알고리즘 2020. 5. 16. 16:33
MST에 들어가기에 앞서 기본 배경들 1. Tree: 한 그래프 내에 모든 노드들이 연결되어있고(connected) 사이클이 없는(acyclic) 무방향(undirected) 그래프를 의미. 2. Forest: 사이클이 없는 무방향 그래프로 한 그래프에 1개 이상의 tree들이 존재 3. Spanning Tree 신장트리 - 그래프 내에 모든 정점을 포함하는 트리로 그래프의 최소 연결(간선) 부분 그래프이다. 최소 연결이란 간선의 수가 가장 적다는 뜻 n개의 정점을 가지면 m이 간선이 수일 경우 m = n-1 ->그래프에서 일부 간선을 선택해서 만든 트리 DFS와 BFS에서 탐색 도중 사용된 간선들과 모든 노드를 합쳐 spanning tree만듬. Minimum Spanning Tree 최소신장트리 - ..