PS78 [백준] 15654. N과 M (5)(c++) https://www.acmicpc.net/problem/15654 배열을 받아주는게 추가된 문제다.사전순으로 출력하기 위해 받은 배열을 정렬 후 dfs 함수에 넘겨주면 된다.#include #include #include #include #include #include #include #include using namespace std;using ll = long long;vector arr;int ans[30];int visited[30];int n,m;void dfs(int idx) { if (idx == m) { for (int i = 0; i > n >> m; for (int i = 0; i > temp; arr.push_back(temp); } sort(arr.begin(), arr.en.. 2024. 4. 29. [백준] 1469. 숌 사이 수열(c++) https://www.acmicpc.net/problem/1469 백트래킹 문제이다.조건이 조금 까다롭다.visited 배열은 해쉬방식으로 선언했다. 또한 arr배열(입력배열)은 -1로 설정해서 0을 놓치지 않도록 하는게 중요하다.백트래킹... 반드시 잘해야지#include #include #include #include #include #include #include #include using namespace std;using ll = long long;vector arr;int ans[30];int visited[30];int n;void dfs(int idx) { if (idx == 2 * n) { for (int i = 0; i > n; for (int i = 0; i > temp; arr... 2024. 4. 29. [백준] 15652. N과 M (4)(c++) https://www.acmicpc.net/problem/15652 백트래킹 조건으로 비내림차순을 정의해주면 된다.#include #include #include #include #include #include #include #include using namespace std;using ll = long long;int arr[8], visited[9];int n, m;void dfs(int idx) { if (idx == m) { for (int i = 0; i = arr[idx - 1]) { arr[idx] = i; dfs(idx + 1); } }}int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m; df.. 2024. 4. 28. [백준] 15651. N과 M (3)(c++) https://www.acmicpc.net/problem/15651 백트래킹보단 그냥 dfs#include #include #include #include #include #include #include #include using namespace std;using ll = long long;int arr[8], visited[9];int n, m;void dfs(int idx) { if (idx == m) { for (int i = 0; i > n >> m; dfs(0); return 0;} 2024. 4. 28. [백준] 15650. N과 M (2)(c++) https://www.acmicpc.net/problem/15650https://feeling.tistory.com/8중복없는 오름차순 정렬을 하면 된다.(1) 코드에 조건을 i visited는 필요없다.하지만 난 넣었다.. #include #include #include #include #include #include #include #include using namespace std;using ll = long long;int arr[8], visited[9];int n, m;void dfs(int idx) { if (idx == m) { for (int i = 0; i > n >> m; dfs(0); return 0;} 2024. 4. 28. [백준] 15649. N과 M (1)(c++) https://www.acmicpc.net/problem/15649 백트래킹이 약한 것 같아 N과 M 시리즈를 다 할 것이다.1번은 중복없는 순열을 구하는 것이다.방문한적이 있다면 넘어가고(backtracking), 아니면 dfs를 하는 방식이다.할 때마다 어지럽다..#include #include #include #include #include #include #include #include using namespace std;using ll = long long;int arr[8], visited[9];int n, m;void dfs(int idx) { if (idx == m) { for (int i = 0; i > n >> m; dfs(0); return 0;} 2024. 4. 28. 이전 1 ··· 9 10 11 12 13 다음