알고리즘 문제풀기
-
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]; ..
-
60. 합이 같은 부분 집합 (아마존 인터뷰 문제 : DFS 완전탐색) [재귀 & 깊이/넓이 우선탐색(DFS, BFS)]알고리즘 문제풀기/인프런 강의 정답 2022. 5. 3. 15:18
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int arr[11]; int arrSum[1025]; int cnt = 0; bool yes = false; void DFS(int maxLevel, int curLevel, int* a) { if (yes == true) return; int* ar = new int[maxLevel]; int sum = 0; int remainSum = 0; for (int i = 0; i maxLevel) { for (int i = 0; i <..
-
59. 부분집합 (MS 인터뷰 문제 : DFS 완전탐색) [재귀 & 깊이/넓이 우선탐색(DFS, BFS)]알고리즘 문제풀기/인프런 강의 정답 2022. 5. 2. 12:31
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; void DFS(int maxLevel, int curLevel, const int* arr) { int level = curLevel; int* a = new int[maxLevel]; for (int i = 0; i maxLevel) { for (int i = 0; i < maxLevel; i++) { if(a[i] == 1) printf("%d ", i + 1); } printf("\n"); return; } a[curLeve..
-
58. 이진트리 깊이우선탐색 (DFS: Depth First Search) [재귀 & 깊이/넓이 우선탐색(DFS, BFS)]알고리즘 문제풀기/인프런 강의 정답 2022. 4. 29. 19:56
나의정답. 전위순회 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; void DFS(int node) { if (node > 7) return; else { printf("%d ", node); DFS(node * 2); DFS(node * 2 + 1); } } int main(int argc, char** argv) { //freopen("input.txt", "rt", stdin); DFS(1); } 나의정답. 중위순회 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using names..
-
57. 재귀함수(스택)를 이용한 2진수 출력 [재귀 & 깊이/넓이 우선탐색(DFS, BFS)]알고리즘 문제풀기/인프런 강의 정답 2022. 4. 27. 16:03
나의정답. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; void Digit(int deci) { if (deci == 0) return; else { Digit(deci / 2); printf("%d", deci % 2); } } int main(int argc, char** argv) { //freopen("input.txt", "rt", stdin); int deci; scanf("%d", &deci); Digit(deci); }