본문 바로가기

알고리즘&자료구조/백트레킹9

백준 15654 #include #include using namespace std; int N, M; bool state[10000]; // 사용여부 상태 int arr[10000]; // 상태에 대한 데이터 배열이 {1,2,3} 순으로 정렬되어 있으면 상태배열에 [0],[1],[2] 각각 매칭됨 int temp[10000]; // 재귀함수를 돌면서 모든 경우의 수를 체크해 출력하기 위한 용도 void func(int k) { if (k == M) { for (int i = 0; i M; for (int i = 0; i > arr[i]; } sort(arr, arr + N); // 오름차순 정렬 func(0); return 0; } 2024. 3. 10.
백준 15652 #include using namespace std; int N, M; bool state[8][9]; // N의 상태는 1부터 시작 인덱스 1부터 들어감 int arr[8]; void func(int k) { if (k == M) { for (int i = 0; i N >> M; func(0); return 0; } 2024. 3. 8.
백준 15651 문제분석 중복을 허용하고자 행은 똑같은 수를 M개 담는 것이고 열은 어떤 수를 담을지 그 수를 몇번째 인덱스에 담고 있는지 체크한다. 코드 #include using namespace std; int N, M; bool state[7][7]; int arr[7]; void func(int k) { if (k == M) { for (int i = 0; i M; func(0); return 0; } 2024. 3. 7.
백준 15650 C++ 코드#include #include using namespace std;int N, M;// N이 1부터 시작하니까 상태배열의 크기를 +1 증가해서 인덱스 1부터 상태체크(해당 숫자 사용 여부)bool state[9];int arr[8];void func(int k) { if (k == M) { sort(arr, arr + M); for (int i = 0; i > N >> M; func(0); return 0;} int st = 1;if (k != 0) st = arr[k - 1] + 1;모든 수열은 중복되지 않으면서 오름차순 정렬을 하도록 해야함  JAVA 코드import java.util.Scanner;public class Main2 { static int n,m; static.. 2024. 3. 6.