알고리즘 문제풀기/인프런 강의 정답
-
69. 이진트리 너비 우선 탐색( 큐 자료구조 직접구현 : BFS)알고리즘 문제풀기/인프런 강의 정답 2022. 5. 17. 12:46
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; int Queue[100], front = -1, back = -1, ch[10]; vector map[10]; int main(int argc, char** argv) { //freopen("input.txt", "rt", stdin); int a, b, x; for (int i = 1; i
-
68. 최소비용(인접리스트)알고리즘 문제풀기/인프런 강의 정답 2022. 5. 16. 12:07
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; int cp[30] = { 0 }; int n, res = 100000; vector map[30]; void dfs(int v, int sum) { if (v == n) { if (sum < res) res = sum; } else { for (int i = 0; i < map[v].size(); i++) { if (cp[ map[v][i].first ] == 1) continue; cp[ map[v][i].first ] = 1; dfs( map[v][i].first, sum + map[v][i].sec..
-
67. 최소 비용 (그래프 DFS)알고리즘 문제풀기/인프런 강의 정답 2022. 5. 15. 12:01
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include 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
-
65. 미로탐색 (2차원 배열 DFS)알고리즘 문제풀기/인프런 강의 정답 2022. 5. 13. 17:31
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int cnt = 0; int vRow[4] = { 0,1,0,-1 }; int vCol[4] = { 1, 0, -1, 0 }; // right(0) down(1) left(2) up(3) int map[10][10] = { 0 }; void dfs(int row, int col) { if (row == 7 && col == 7) { // 도착지점 (7,7) cnt++; } else if ((row > 7 || col > 7) || (row < 1 || col < 1)) { // (1, 1)~(7, 7)을 벗어나면 함수종..
-
64. 경로탐색 (그래프 DFS : Depth First Search) [재귀 & 깊이/넓이 우선탐색(DFS, BFS)]알고리즘 문제풀기/인프런 강의 정답 2022. 5. 10. 14:02
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include int cnt = 0; int** copyMap(int** map, int size) { int** tmp = new int* [size]; for (int i = 0; i < size; i++) tmp[i] = new int[size]; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { tmp[i][j] = map[i][j]; } } return tmp; } void dfs(int curNode, int** map, int targetNode) { int size = targetNode +..
-
63. 인접행렬 [재귀 & 깊이/넓이 우선탐색(DFS, BFS)알고리즘 문제풀기/인프런 강의 정답 2022. 5. 6. 11:22
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int main(int argc, char** argv) { //freopen("input.txt", "rt", stdin); int n, m; int a, b, c; int row, col; scanf("%d %d", &n, &m); row = n; col = n; int** map = new int* [row]; for (int i = 0; i < row; i++) map[i] = new int[col]; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) m..
-
62. 병합정렬(분할 정복) [재귀 & 깊이/넓이 우선탐색(DFS, BFS)알고리즘 문제풀기/인프런 강의 정답 2022. 5. 5. 14:30
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int dat[10]; int tmp[10]; void divide(int lt, int rt) { int mid = (lt + rt) / 2; int p1 = lt, p2 = mid + 1, p3 = lt; if (lt < rt) { divide(lt, mid); divide(mid + 1, rt); while (p1
-
61. 특정 수 만들기 (MS 인터뷰 문제 : DFS 완전탐색)알고리즘 문제풀기/인프런 강의 정답 2022. 5. 4. 11:15
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int ar[11]; int br[11]; int num; int target; int cnt = 0; void DFS2(int maxLevel, int curLevel, int* brr) { int* b = new int[maxLevel]; for (int i = 0; i maxLevel) { int res = 0; for (int i = 0; i < maxLevel; i++) { if (b[i] == 1) { res += br[i]; ..