-
67. 최소 비용 (그래프 DFS)알고리즘 문제풀기/인프런 강의 정답 2022. 5. 15. 12:01
나의정답.
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <algorithm> #include <vector> #include <stack> using namespace std; int map[30][30]; int cp[30] = { 0 }; int n, sum = 0; int mi = 100000; void dfs(int v) { if (v == n) { if (sum < mi) mi = sum; } else { for (int i = 1; i <= n; i++) { if (map[v][i] == 0) continue; if (cp[i] == 1) continue; cp[i] = 1; sum += map[v][i]; dfs(i); sum -= map[v][i]; cp[i] = 0; } } } int main(int argc, char** argv) { //freopen("input.txt", "rt", stdin); int m, a, b, c; scanf("%d %d", &n, &m); for (int i = 0; i < 30; i++) for (int j = 0; j < 30; j++) map[i][j] = 0; for (int i = 0; i < m; i++) { scanf("%d %d %d", &a, &b, &c); map[a][b] = c; } cp[1] = 1; dfs(1); printf("%d", mi); }
'알고리즘 문제풀기 > 인프런 강의 정답' 카테고리의 다른 글
69. 이진트리 너비 우선 탐색( 큐 자료구조 직접구현 : BFS) (0) 2022.05.17 68. 최소비용(인접리스트) (0) 2022.05.16 65. 미로탐색 (2차원 배열 DFS) (0) 2022.05.13 64. 경로탐색 (그래프 DFS : Depth First Search) [재귀 & 깊이/넓이 우선탐색(DFS, BFS)] (0) 2022.05.10 63. 인접행렬 [재귀 & 깊이/넓이 우선탐색(DFS, BFS) (0) 2022.05.06