N과 M (4) (15652)
풀이코드
#include <iostream>
#include <cstdio>
#include <vector>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <string>
using namespace std;
// 15652 N 과 M (4)
int N, M;
bool used[10]; // 사용한 것을 저장하는 배열
int arr[10]; // 지금 구성된 수열을 저장하는 배열
void seq(int index, int start){
// 기저 사례 : 길이가 M 에 도달하면 종료
if(index == M) {
for(int i = 0; i < M ; i++){
cout << arr[i] << " ";
}
cout << "\n";
return;
}
for(int i = start; i <= N; i++){
// 고른 수의 중복을 피하게 함.
arr[index] = i;
seq(index + 1, i);
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> N >> M;
fill_n(used, 10, false);
seq(0, 1);
}
해설
적용한 레시피 / 방법론 + 접근법
같은 문제를 풀어본 적이 있던가?
풀이
아쉬웠던 부분 / 오답 원인 / 개선해야 할 점
index 값에 대한 이해가 살짝 부족해서 시간 소요가 있었다.
반응형
'ps > 브루트 포스' 카테고리의 다른 글
9095 1,2,3 더하기 + (0) | 2021.09.04 |
---|---|
NM과 K (1) 18290 (0) | 2021.08.28 |
15651 N과 M (3) (0) | 2021.08.28 |
N과 M (2) 15650 (0) | 2021.08.26 |
N과 M (1) 15649 (0) | 2021.08.24 |