백트래킹 2

[C++/BOJ] 백준 9663 N-Queen(백트래킹)_결국 풀었다

문제는 아주 간단하다 N이 주어질때 N*N 체스판에서 N개의 퀸을 놓는 방법의 수를 출력하면 된다. 일단 코드는 check 와 queen 함수를 사용하였다. #include using namespace std; int col[16],cross1[30], cross2[30];//15*2-1 = 29이므로 약 30 int cnt, n ; bool check(int r, int c) { // 놓을 수 있는 자리인가 if (col[c] || cross1[r+c] || cross2[r-c+n-1]) return false; return true; } void queen(int row) { //row 행에 퀸 놓을 자리 찾기 if (row == n) {// 방법 하나 발견! cnt++; return; } for (..

[C++/BOJ] 백준 12101 1,2,3더하기2 (백트래킹)

https://www.acmicpc.net/problem/12101 12101번: 1, 2, 3 더하기 2 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. www.acmicpc.net 백준티어 : 실버1 입력 첫째 줄에 정수 n과 k가 주어진다. n은 양수이며 11보다 작고, k는 231-1보다 작거나 같은 자연수이다. 출력 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. 예제 입력 1 복사 4 3 예제 출력 1 복사 1+2+1 => n과 k가 입력될때 총 합이 n이 되는 1,2,3의 합으로 이루어진 식의 k번째 식을..