C++
-
[BOJ] 17532 여러분의 다리가 되어 드리겠습니다! - C++개발/알고리즘 & PS 2024. 1. 13. 23:20
https://www.acmicpc.net/problem/17352 17352번: 여러분의 다리가 되어 드리겠습니다!선린월드에는 N개의 섬이 있다. 섬에는 1, 2, ..., N의 번호가 하나씩 붙어 있다. 그 섬들을 N - 1개의 다리가 잇고 있으며, 어떤 두 섬 사이든 다리로 왕복할 수 있다. 어제까지는 그랬다. "왜 다리www.acmicpc.net아이디어n개의 섬이 n-1개의 다리로 모두 이어져 있다가 하나가 끊어졌으므로 2개의 그룹으로 섬을 분류할 수 있다. 각 그룹에서 섬을 하나씩 뽑아 서로 이으면 모든 섬을 다닐 수 있다.여러 섬이 서로 이어져있는지 확인하기 위해 Union-Find를 사용한다. 단계이어진 다리에 대해 Union-Find 수행서로 다른 그룹인 두 섬을 출력하면 되는데 아무 경우..
-
[백준] 16985번 Maaaaaaaaaze C++개발/알고리즘 & PS 2023. 10. 19. 22:21
https://www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을www.acmicpc.net 3차원 BFS에 층별 재배치, 회전까지 들어가 있는 문제이다. 단순하게 모든 경우의 수에 BFS를 해보면 된다. 구현이 살짝 많다.풀이 구상층별 배열 순서를 결정한다.각 층을 회전시킨다.BFS를 수행하고 최단거리를 구한다.permutation → 백트래킹 → BFS 순으로 알고리즘을 사용했다. next_permutation각 층을 배열하는 경우의 수를 모두 구하려면 algorit..