Problem Solving/BOJ

[백준 15657번] [Backtracking] N과 M (8)

  • -
728x90
반응형

Approach

전체적으로 다음 접근 방법과 완전히 동일하다. https://viyoung.tistory.com/284?category=884242 

 

[백준 15656번] [Backtracking] N과 M (7)

Approach 기본적인 접근 방법은 https://viyoung.tistory.com/283.과 동일하다. [백준 15655번] [Backtracking] N과 M (6) Approach 문제에서 요구한 조건이 내림차순이라는 조건이 있으므로, 정렬한 상태에서 몇..

viyoung.tistory.com

다만, 중복을 포함하면서 비내림차순이므로 반복문에서 자기 자신의 index 이상인 경우만 고려해준다는 점에서 차이가 존재한다.

Code

#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)

using namespace std;
vector<int> v;
int N, M;
int result[8];

void solve(int cur, int index)
{
    result[index++] = v[cur];
    if (index == M)
    {
        for (int i = 0; i < M; i++)
        {
            if (i != M - 1)
                cout << result[i] << " ";
            else
                cout << result[i] << "\n";
        }
        return;
    }
    for (int i = cur; i < N; i++)
    {
        solve(i, index);
    }
    return;
}

int main(void)
{
    fastio;
    memset(result, 0, sizeof(result));
    cin >> N >> M;

    for (int i = 0; i < N; i++)
    {
        int t;
        cin >> t;
        v.push_back(t);
    }

    sort(v.begin(), v.end());
    for (int i = 0; i < N; i++)
    {
        solve(i, 0);
    }
    return 0;
}
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.