백준 algorithm
백준 15650 - N과 M(2)
cosmohoo
2020. 6. 3. 21:23
반응형
=> 브루트 포스 문제입니다.
=> 기존의 N과 M문제에서 힌트를 받아 풀 수 있습니다.
=> 오름차순으로 해야되는 것만 염두에 두면 풀 수 있습니다.
https://codingham.tistory.com/41
백준 15649 - N과 M(1)
백트래킹과 관련된 기초 문제이다. 본인은 백트레킹의 개념은 알지만 코드로 구현함에 있어 어려움을 겪어, 다른 사람들의 코드를 보며 썼다. 길이가 M이므로, cnt가 M이 될때까지 해당 Backtracking
codingham.tistory.com
=> 위의 문제를 참조하면 쉽게 풀 수 있습니다.
<code>
#include <iostream>
#include <algorithm>
#include <string>
bool visited[10]; //false로 초기화
int arr[10];
using namespace std;
void find(int index, int start, int N, int M)
{
if(index == M)
{
for(int i=0; i<M; i++)
{
cout << arr[i] <<" ";
}
cout<<'\n';
}
for(int i=start; i<=N; i++)
{
if(visited[i])continue;
visited[i] = true;
arr[index] = i;
find(index+1, i+1, N, M);
visited[i] =false;
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int N, M;
cin >> N >> M;
find(0,1,N, M);
return 0;
}
반응형