BOJ_1414_G3_불우이웃돕기

Chung Lee·2022년 4월 21일
0

알고리즘

목록 보기
17/21

문제 링크 : https://www.acmicpc.net/problem/1414

문제에서 주어지는 N * N 행렬로 이어지는 그래프들은 단일 간선 그래프입니다.
A 컴퓨터에서 B 컴퓨터로 가는 랜선은 있지만 B 컴퓨터에서 A 컴퓨터로 가는 랜선은 존재하지 않을 수도 있습니다.

하지만 문제 규칙에 랜선이 하나라도 있으면 연결이 된 것으로 인정하기 때문에 결국 두 컴퓨터 사이에 랜선이 2개있는 것은 낭비라고 볼 수 있습니다.


따라서 우선 들어온 N * N 행렬을 1~N으로 대칭되는 행렬로 만들되, 대칭되는 두 자리를 비교했을 때 큰 자리 수는 작은 값으로 mapping 되게끔 전처리를 했습니다.


그 후, 우선순위 큐와 BFS방식으로 0번째 컴퓨터부터 순회를 했습니다. (다익스트라 응용)
방문체크를 동시에 하며 우선 가장 작은 수를 진행하고 그 수를 저장합니다.


모든 탐색이 끝난 이후 방문체크한 결과값을 보며 방문을 못한 노드가 있다면 연결되지 않았다고 판단, -1을 출력합니다.
만약 모든 컴퓨터를 탐색했다면 저장된 값을 모두 더한 후 출력해주었습니다.

0개의 댓글