[백준/c++] 15652번 : N과 M(4)
2245 단어 Bruth ForceBruth Force
[문제]
[풀이]
- N과 M(2) 문제는 중복없이 오름차순인 수열을 출력하는 문제였다.
- 이번 N과 M(4)문제는 비내림차순을 만족하면 되는데 이전 index의 수와 같거나 큰 수를 만족하면 된다. 즉, start를 통해 시작하는 숫자를 지정해주면서 중복 검사를 생략하면 된다.
- 이전 N과 M(2)의 코드에서 check[10]를 통해 중복검사 하는 부분을 빼주고, 다음 재귀함수로 넘어갈때 (중복이 가능하므로) start에 i+1이 아닌 i를 넣어주었다.
[코드]
//15652. N과 M(4)
#include <iostream>
using namespace std;
int check[10];
int arr[10];
void func(int index,int start, int n,int m){
if(index>m){
for(int i=1; i<=m; i++){
cout<<arr[i]<<" ";
}
cout<<"\n";
return;
}
for(int i=start; i<=n; i++){
arr[index]=i;
func(index+1,i,n,m);
}
}
int main(){
int n,m;
cin>>n>>m;
func(1,1,n,m);
}
Author And Source
이 문제에 관하여([백준/c++] 15652번 : N과 M(4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@somyeong0623/백준c-15652번-N과-M4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)