MODE::CREATIVE

[백준][c++] 15650번: N과 M (2) 본문

BOJ

[백준][c++] 15650번: N과 M (2)

LEE MINGYU 2024. 9. 8. 16:32

 

https://www.acmicpc.net/problem/15650

문제 해석

  • 사전순으로 증가하는 수열의 모든 경우를 출력하는 문제

알고리즘 분류

  • 백 트래킹

풀이

  • 재귀함수를 이용해서 해결한다

코드

#include <iostream>

using namespace std;

static int N,M;
static int arr[8];

void find(int x, int len) {
    if (len == M) {
        for (int i=0; i < M; i++) {
            cout << arr[i] << " ";
        }
        cout << endl;
        return;
    }

    for(int i = x + 1; i <= N; i++) {
        arr[len] = i;
        find(i, len + 1);
    }
}

int main()
{
    cin >> N >> M;
    find(0, 0);
    return 0;
}

'BOJ' 카테고리의 다른 글

[백준][c++] 11726번: 2×n 타일링  (0) 2024.09.09
[백준][c++] 15649번: N과 M (1)  (0) 2024.09.09
[백준][c++] 15652번: N과 M (4)  (0) 2024.09.08
[백준][JAVA] 1305번: 광고  (0) 2024.06.17
[백준][c++] 2206번: 벽 부수고 이동하기  (0) 2024.02.19