-
https://www.acmicpc.net/problem/21924
21924번: 도시 건설
첫 번째 줄에 건물의 개수 $N$ $(3 \le N \le 10^5 )$와 도로의 개수 $M$ $(2 \le M \le min( {N(N-1) \over 2}, 5×10^5)) $가 주어진다. 두 번째 줄 부터 $M + 1$줄까지 건물의 번호 $a$, $b$ $(1 \le a, b \le N, a ≠ b)$와 두
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%2021924
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 전형적인 MST 문제다 다만 모두 연결되지 않을 경우 -1을 출력해 줘야 한다.
해당 문제는 프림 알고리즘을 이용하여 해결하였는데, 처음에는 모두 연결 안 되면 -1을 출력해 주어야 하는데
해당 부분을 보지 않고 넘겨서 틀렸고, 그다음으로는 데이터 범위가 제곱으로 표시되어 있다 보니 그냥 넘겼는데
데이터 범위를 벗어나기 때문에 ans를 long형으로 사용해 제출했는데, 또 틀렸다고 나와 찾아보다 보니,
모든 금액 합을 더하는 sum도 long형으로 바꿔줘야 하는데 이 부분을 빼먹어서 자꾸 10퍼에서 틀렸다고 나왔었다.
최근 프림이랑 크루스칼 관련 문제를 풀어보니 알고리즘만 사용하면 쉽게 해결 가능한데 문제 속에
조건을 잘 파악해야 할 거 같다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 1916 최소비용 구하기 JAVA (0) 2021.11.09 Baekjoon 1753 최단경로 JAVA (0) 2021.11.09 Baekjoon 1774 우주신과의 교감 JAVA (0) 2021.11.09 Baekjoon 4386 별자리 만들기 JAVA (0) 2021.11.09 Baekjoon 6497 전력난 JAVA (0) 2021.11.09 댓글