백준 15649번: N과 M (1)
문제
문제 바로가기> 백준 15649번: N과 M (1)
풀이
재귀를 이용한 backtraking으로 문제를 풀었다. 방문할 때 마다 값을 저장해 놓고 m개 방문시 저장된 값들을 출력해 주었다.
#include<iostream>
using namespace std;
int n, m;
int arr[9]={};
bool visit[9]={false};
void backtracking(int idx){
if(idx==m) {
for(int i=0; i<m; i++) cout << arr[i] << ' ';
cout <<'\n';
return;
}
for(int i=1; i<=n; i++){
if(!visit[i]){
visit[i] = true;
arr[idx] = i;
backtracking(idx+1);
visit[i] = false;
}
}
}
int main(){
ios_base::sync_with_stdio(false); cin.tie(NULL);
cin>>n>>m;
backtracking(0);
}
Author And Source
이 문제에 관하여(백준 15649번: N과 M (1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@danbibibi/백준-15649번-N과-M-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)