728x90
https://www.acmicpc.net/problem/15651
문제 풀이
N과 M (1)에서 visited 배열을 이용해서 중복된 숫자가 나오는 것을 방지했다. 그것만 제외해주면 동일한 문제
느낀점
이번 문제는 '중복 순열'을 푸는 방법이었다. 사실 1번 2번 문제에서 순열, 조합을 따지지는 않았지만 이번 문제를 풀 때 순열과 조합이 관련된 문제라는 것을 알고 사전에 훑어보고 들어갔다.
코드
#include <iostream>
#define MAX 8
using namespace std;
int n, m;
int arr[MAX] = { 0, };
void dfs(int cnt) {
if (cnt == m) {
for (int i = 0; i < m; i++) {
cout << arr[i] << " ";
}
cout << "\n";
return;
}
for (int i = 0; i < n;i++) {
arr[cnt] = i + 1;
dfs(cnt + 1);
}
}
int main() {
cin >> n >> m;
dfs(0);
}
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[C++] 백준 17103번 : 골드바흐 파티션 (0) | 2021.05.24 |
---|---|
[C++] 백준 15652번 : N과 M (4) (0) | 2021.05.24 |
[C++] 백준 15650번 : N과 M (2) (0) | 2021.05.23 |
[C++] 백준 15649번 : N과 M (1) (0) | 2021.05.22 |
[C] 백준 18870번 : 좌표 압축 (0) | 2021.05.21 |
댓글