|
์ฝ๋ ์์ฑํ๊ธฐ
#include<iostream>
using namespace std;
int arr[10], num, depth;
void go(int idx, int n, int d, int start) {
if (idx == d) { //๊ธฐ์ : ์ธ๋ฑ์ค ๊ฐ์ด ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง depth์ ๋ค๋ค๋ฅด๋ฉด ์ถ๋ ฅ
for (int i = 0; i < d; i++) cout << arr[i] << " ";
cout << "\n";
return;
}
for (int i = start; i <= n; i++) {
arr[idx] = i;
go(idx + 1, n, d, i + 1);
arr[idx] = 0;
}
}
int main() {
cin >> num >> depth;
go(0, num, depth, 1);
return 0;
}
C++
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
N๊ณผ M(1) ๋ฌธ์ ์ ๋น์ทํ์ง๋ง ์์ด์ ์ฌ์ ์์ผ๋ก ์ซ์์ ์ค๋ณต ์์ด ์ถ๋ ฅํ๋ ์์ด๋ด์ ์ ๋ํ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. start๋ผ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐํ์ฌ ์์ ํ๋ ์ซ์๋ฅผ ์ ํด์ฃผ๊ณ ๊ทธ ๋ณด๋ค ํฐ ์๋ง ์ถ๋ ฅํ๋ฉด ๋๋ค. ์ฌ๊ท ํจ์ ๋ด๋ถ์ ๋ฐ๋ณต๋ฌธ์์ start (๋ถ๋ชจ ํจ์ for๋ฌธ์ i+1)๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ check ๋ฐฐ์ด์ ํตํด ์ค๋ณต ๊ฒ์ฌ๋ฅผ ํด์ฃผ์ง ์์๋ ์ค๋ณต์ด ๋์ง ์๋๋ค.