Beakjoon/backtracking (11) 썸네일형 리스트형 [백준] 10819번 차이를 최대로 (C++) - backtracking 문제 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 코드 #include using namespace std; int arr[8]; int arr2[8]; int isVisited[8]; int n; int maxValue = -1; void dfs(int cnt){ if(cnt==n){ int result = 0; for(int i=0; imaxValue) maxValue = result; return; } for(int i=0; i> n; for(int.. [백준] 6603번 로또 (C++) - backtracking 문제 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 코드 #include using namespace std; int arr[12]; int lotto[6]; int t; void dfs(int num, int cnt){ if(cnt==6){ for(int i=0; i [백준] 18290번 NM과 K (1) (C++) - backtracking 문제 https://www.acmicpc.net/problem/18290 18290번: NM과 K (1) 크기가 N×M인 격자판의 각 칸에 정수가 하나씩 들어있다. 이 격자판에서 칸 K개를 선택할 것이고, 선택한 칸에 들어있는 수를 모두 더한 값의 최댓값을 구하려고 한다. 단, 선택한 두 칸이 인접 www.acmicpc.net 코드 #include using namespace std; int arr[11][11]; int isVisited[11][11]; int maxN = -40000; int n,m,k; void dfs(int y, int x, int cnt, int sum){ sum+=arr[y][x]; cnt++; if(cnt==k){ if(sum>maxN) maxN = sum; return; }.. [백준] 15657번 N과 M (8) (C++) - backtracking 문제 https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 코드 #include #include #include using namespace std; int n, m; vector v; int arr[9]; void dfs(int num, int cnt){ if(cnt == m){ for(int i=0; i a; v.push_back(a); } sort(v.begin(), v.end()); dfs(0, 0); return 0; } 정리 이 .. [백준] 15656번 N과 M (7) (C++) - backtracking 문제 https://www.acmicpc.net/problem/15656 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 코드 #include #include #include using namespace std; int n, m; vector v; int arr[9]; void dfs(int cnt){ if(cnt == m){ for(int i=0; i a; v.push_back(a); } sort(v.begin(), v.end()); dfs(0); return 0; } 정리 이 문제와 15651번의 .. [백준] 15655번 N과 M (6) (C++) - backtracking 문제 https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 코드 #include #include #include using namespace std; int n, m; vector v; int arr[9]; bool isVisited[9]; void dfs(int num, int cnt){ if(cnt == m){ for(int i=0; i a; v.push_back(a); } sort(v.begin(), v.end()); dfs(0, 0).. [백준] 15654번 N과 M (5) (C++) - backtracking 문제 https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 코드 #include #include #include using namespace std; int n, m; vector v; int arr[9]; bool isVisited[9]; void dfs(int cnt){ if(cnt == m){ for(int i=0; i a; v.push_back(a); } sort(v.begin(), v.end()); dfs(0); return 0; .. [백준] 15652번 N과 M (4) (C++) - backtracking 문제 https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 #include using namespace std; int n, m; int arr[9]; void dfs(int num, int cnt){ if(cnt==m){ for(int i=0; i 이전 1 2 다음