-
백트래킹(N과 M 문제)Algorithm 2024. 1. 31. 21:08
백트래킹
: 현재 상태에서 가능한 모든 후보군을 따라 들어가며 탐색하는 알고리즘
BOJ15649 N과 M 기본 문제
#include <bits/stdc++.h> using namespace std; int n, m; int arr[10]; bool isused[10]; void func(int k) { // k까지 고른 상태에서 arr[k]를 정하는 함수 if (k == m) { for (int i = 0; i < m; i++) cout << arr[i] << ' '; cout << '\n'; return; } for (int i = 1; i <= n; i++) { if (!isused[i]) { arr[k] = i; isused[i] = 1; func(k + 1); isused[i] = 0; } } } int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; func(0); }
'Algorithm' 카테고리의 다른 글
Prefix Sum 알고리즘 (0) 2024.03.09 재귀 (1) 2024.01.30 BFS(너비우선탐색), DFS(깊이우선탐색) (1) 2024.01.30