ABOUT ME

Today
Yesterday
Total
  • 백트래킹(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
Designed by Tistory.