본문 바로가기

728x90
SMALL

BAEKJOON/그래프

(68)
백준 1647번 [도시 분할 계획](C++) -yes6686- 티스토리 백준 문제 풀이: 1647 [도시 분할 계획]문제 링크: https://www.acmicpc.net/problem/1647문제 설명:도시를 두 개의 구역으로 분리하려고 합니다. 도시에는 집과 길이 있으며, 모든 길은 유지 비용이 있습니다. 길을 최소한으로 선택하여 모든 집들이 연결되도록 하고, 두 구역으로 나누었을 때의 최소 비용을 구하는 문제입니다. 단, 두 구역 사이에 길이 없어야 합니다.문제 해결 코드#include #include using namespace std;int parent[100001];// 부모 노드 찾기int GetParent(int x) { if (parent[x] == x) return x; return parent[x] = GetParent(parent[x]..
백준 1154번 [팀 편성](C++) -yes6686- 티스토리 백준 문제 풀이: 1154 [팀 편성]문제 링크: https://www.acmicpc.net/problem/1154문제 설명:n명의 사람들이 있으며, 일부 사람들끼리는 서로 적대적인 관계입니다. 모든 적대 관계를 고려하여 두 팀으로 나누되, 같은 팀에 속한 사람들끼리는 적대 관계가 없도록 합니다. 가능한 경우, 두 팀의 멤버를 출력하며, 불가능한 경우 -1을 출력합니다.문제 해결 코드#include #include #include using namespace std;vector v[1001];int checkA[1001];int checkB[1001];int ch[1001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; ..
백준 1707번 [이분 그래프](C++) -yes6686- 티스토리 백준 문제 풀이: 1707 [이분 그래프]문제 링크: https://www.acmicpc.net/problem/1707문제 설명:주어진 그래프가 이분 그래프인지 판별하는 문제입니다. 이분 그래프란, 그래프의 정점을 두 그룹으로 나누었을 때, 같은 그룹 내의 정점들끼리는 간선이 존재하지 않는 그래프를 의미합니다.주어진 그래프의 정점 수 (V)와 간선 수 (E) 및 각 간선 정보 (a, b)를 입력받아, 그래프가 이분 그래프이면 "YES", 아니면 "NO"를 출력합니다.문제 해결 코드#include #include #include using namespace std;vector v[20001];int visited[20001];int check = 0;void dfs(int a) { for (int i..
백준 15666번 [N과 M (12)](C++)-yes6686- 티스토리 백준 문제 풀이: 15666번 [N과 M (12)]문제 링크: https://www.acmicpc.net/problem/15666문제 설명:1부터 N까지 자연수 중에서 M개를 고른 수열을 출력하는 문제입니다. 입력으로 주어지는 N개의 숫자 중 M개를 고르며, 수열은 사전순으로 증가하는 순서로 출력해야 합니다. 같은 숫자가 여러 번 입력될 수 있으며, 같은 수를 중복 선택할 수 있습니다.입력:첫째 줄에 자연수 N과 M이 주어집니다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 자연수가 주어집니다. (1 ≤ arr[i] ≤ 10,000)출력:한 줄에 하나씩 조건을 만족하는 수열을 출력합니다.문제 해결 코드#include #include using namespace std;int n, m;int arr[8];..
백준 15663번 [N과 M (9)](C++)-yes6686- 티스토리 백준 문제 풀이: 15663 [N과 M (9)]문제 링크: https://www.acmicpc.net/problem/15663문제 설명:1부터 N까지 자연수 중에서 M개를 고른 수열을 출력하는 문제입니다. 입력으로 주어지는 N개의 숫자 중 M개를 고르며, 수열은 사전순으로 증가하는 순서로 출력해야 합니다. 같은 숫자가 여러 번 입력될 수 있으므로, 중복된 순열은 제거해야 합니다.입력:첫째 줄에 자연수 N과 M이 주어집니다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 자연수가 주어집니다. (1 ≤ arr[i] ≤ 10,000)출력:한 줄에 하나씩 조건을 만족하는 수열을 출력합니다.문제 해결 코드#include #include using namespace std;int n, m;int arr[8];bool..
백준 16953번 [A → B](C++)-yes6686- 티스토리 백준 문제 풀이: 16953 [A → B]문제 링크: https://www.acmicpc.net/problem/16953문제 설명:두 정수 A와 B가 주어졌을 때, A를 B로 바꾸는 연산 횟수의 최솟값을 구하는 문제입니다. 가능한 연산은 다음과 같습니다:A에 2를 곱합니다.A의 오른쪽에 1을 추가합니다.연산을 통해 A를 B로 만들 수 없으면 -1을 출력합니다.입력:첫째 줄에 정수 A와 B가 주어집니다. (1 ≤ A, B ≤ 109)출력:A를 B로 바꾸는 데 필요한 최소 연산 횟수를 출력합니다. 불가능하면 -1을 출력합니다.문제 해결 코드#include #include using namespace std;int main() { long long A, B; cin >> A >> B; queu..
백준 16236번 [아기 상어](C++) -yes6686- 티스토리 백준 문제 풀이: 16236 [아기 상어]문제 링크: https://www.acmicpc.net/problem/16236문제 설명:아기 상어가 NxN 크기의 공간에서 자신의 크기보다 작은 물고기를 먹으며 성장해나가는 문제입니다. 아기 상어는 상하좌우로 움직이며, 더 이상 먹을 수 있는 물고기가 없을 때까지 움직이는 시간을 계산해야 합니다.입력:첫 번째 줄에 공간의 크기 N이 주어집니다. (2 ≤ N ≤ 20)다음 N개의 줄에는 공간의 상태가 주어집니다. 0은 빈 칸, 1~6은 물고기 크기, 9는 아기 상어의 위치입니다.출력:아기 상어가 더 이상 먹을 수 있는 물고기가 없을 때까지 걸린 시간을 출력합니다.문제 해결 코드#include #include #include #include #include usin..
백준 15654번 [N과 M (5)](C++)-yes6686- 티스토리 백준 문제 풀이: 15654 [N과 M (5)]문제 링크: https://www.acmicpc.net/problem/15654문제 설명:1부터 N까지 자연수 중에서 M개를 고른 수열을 출력하는 문제입니다. 입력으로 주어지는 N개의 숫자 중 M개를 고르며, 수열은 사전순으로 증가하는 순서로 출력해야 합니다.입력:첫째 줄에 자연수 N과 M이 주어집니다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 자연수가 주어집니다. (1 ≤ r[i] ≤ 10,000)출력:한 줄에 하나씩 조건을 만족하는 수열을 출력합니다.문제 해결 코드#include #include using namespace std;int n, m;int arr[8];int r[8];bool visited[8];void dfs(int depth) { ..

728x90
LIST