https://www.acmicpc.net/problem/15651
자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. (중복가능)
N = 4, M = 2인 경우 아래와 같이 16(4*4) 개의 경우가 발생한다.
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
3 1
3 2
3 3
3 4
4 1
4 2
4 3
4 4
내 생각에는 N과 M(1)보다 풀이에 접근하기 더 쉬운 문제라고 생각한다. 내기준으로는 "N과 M(0)" 이 맞을듯.^^
#include <bits/stdc++.h>
using namespace std;
vector <int> res;
void NM3(int n, int m) {
if (res.size() == m) {
for (int i = 0; i < m; i++) {
cout << res[i] << " ";
}
cout << '\n';
return;
}
for (int i = 1; i <= n; i++) {
res.push_back(i);
NM3(n, m);
res.pop_back();
}
}
int main() {
int n, m;
cin >> n >> m;
NM3(n, m);
return 0;
}
'정보올림피아드-KOI > BOJ' 카테고리의 다른 글
백준 - DFS와 BFS : 1260번 (0) | 2019.12.22 |
---|---|
백준 - N과 M (4) :15652 번 (0) | 2019.12.19 |
백준 - A/B : 1008번 (0) | 2019.12.19 |
백준 - 개 : 10172번 (0) | 2019.12.19 |
백준 - 단지번호붙이기 : 2667번 (0) | 2019.12.19 |