본문 바로가기

브루트 포스/n과 m

N과 M (3)

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

 

15651번: N과 M (3)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

같은 수를 여러번 골라도 된다.

즉, 중복 제거가 들어가지 않았으므로! 

check 배열은 필요가 없다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std;
int a[10];
void go(int index, int n, int m)
{
    if (index == m)
    {
        for (int i = 0; i < m; i++)
            cout << a[i] << ' ';
        cout << '\n';
        return;
    }
 
    for(int i = 1; i <= n; i++)
    {
        a[index] = i;
        go(index + 1, n, m);
    }
 
}
 
int main()
{
    int n, m;
    cin >> n >> m;
    go(0, n, m);
}
cs

 

'브루트 포스 > n과 m' 카테고리의 다른 글

n과 m (6)  (0) 2023.07.03
n과 m (5)  (0) 2023.07.03
n과 m (4), 중복 조합 (중요!)  (0) 2023.07.03
N과 M (2) , 조합으로 구하기!!!  (0) 2023.02.09
N과 M (1)  (0) 2023.02.09