Baekjoon/백트래킹

    [2529] 부등호(C++)

    [2529] 부등호(C++)

    문제 바로가기 두 종류의 부등호 기호 가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시된 부등호 순서열 A가 다음과 같다고 하자. A ⇒ 부등호 기호 앞뒤에 넣을 수 있는 숫자는 0부터 9까지의 정수이며 선택된 숫자는 모두 달라야 한다. 아래는 부등호 순서열 A를 만족시키는 한 예이다. 3 1 7 0 이 상황에서 부등호 기호를 제거한 뒤, 숫자를 모두 붙이면 하나의 수를 만들 수 있는데 이 수를 주어진 부등호 관계를 만족시키는 정수라고 한다. 그런데 주어진 부등호 관계를 만족하는 정수는 하나 이상 존재한다. 예를..

    [10974] 모든 순열(C++)

    [10974] 모든 순열(C++)

    문제 바로가기 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다. 출력 첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다. 해결 방법 내 코드 // [10974] 모든 순열 // 브루트포스, 백트래킹 #include using namespace std; bool visited[8]; int n, arr[8], tmpArr[8]; void dfs(int idx, int depth) { if(depth == n) { for(int i = 0; i < n; i++) { cout

    [1182] 부분수열의 합(C++)

    [1182] 부분수열의 합(C++)

    문제 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 내 코드 // [1182] 부분수열의 합 // https://www.acmicpc.net/problem/1182 // 브루트포스, 백트래킹 #include using namespace std; int n, s, ans = 0, num[21]; void input() { cin >> n >> s; for(int i = 0 ; i > num[i]; } } void solve(int index..