(백준/c++) 17472번 - 다리만들기📃 coding test/◽ 백준2022. 5. 25. 12:56
Table of Contents
728x90
17472번: 다리 만들기 2 (acmicpc.net)
17472번: 다리 만들기 2
첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다.
www.acmicpc.net
유니온 파인드, 크루스칼, BFS
void InputFunc();
- 입력 받는 함수
void CreateGroup();
void CreateGroupBFSFunc(int pX, int pY, int pGroupNum);
- 섬을 찾아서 그룹을 만들고 번호를 부여함.
void BridgeConnection();
void FindAllBridge(int pX, int pY);
- 동서남북 방향으로 갈 수 있는 곳까지 출발한 섬 번호와 다른 번호를 만났을때 다리를 연결해줌.
- 길이가 2인 모든 경우를 넣어줌.
void IslandUnion(int pIsland01, int pIsland02);
bool IslandFind(int pIsland01, int pIsland02);
int GetParent(int pNum);
- 일반적인 유니온 파인드 코드
void MSTKruskal();
- 크루스칼 알고리즘을 통해 가장 짧은 거리부터 연결해줌.
- 모두 연결 후 모든 섬이 연결 되었는지 확인함. <- 이 부분 때문에 하루 잡아 먹은듯 ..
728x90
'📃 coding test > ◽ 백준' 카테고리의 다른 글
(백준/c++) 24480 - 알고리즘 수업 - 깊이 우선 탐색 2 (0) | 2022.06.04 |
---|---|
(백준/c++) 24479 - 알고리즘 수업 - 깊이 우선 탐색 1 (0) | 2022.06.02 |
(백준/c++) 1976번 - 여행 가자 (0) | 2022.02.15 |
(백준/c++)20040번 - 사이클 게임 (0) | 2022.02.15 |
(백준/c++)1780번 - 종이의 개수 (0) | 2022.01.18 |
@핑크코냥 :: 핑크코냥
안 하는 것 보다 낫겠지
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!