본문 바로가기

하루하나코딩

백준 15654 : N과 M(5) c++

코드

#include <iostream>
#include <algorithm>

using namespace std;

int N, M;
int number[8];
int arr[8];
bool visited[9];


void dfs(int a){
	if(a == M){
		for(int i = 0; i < M; i++){
			cout << number[arr[i]] << " ";
		}
		cout << "\n";
	}
	
	for(int i = 0; i < N; i++){
		if(!visited[i]){
			visited[i] = true;
			arr[a] = i;
			dfs(a+1);
			visited[i] = false;
		}
	}
	
}

int main(){
	
	cin >> N >> M;
	for(int i = 0; i < N; i++){
		cin >> number[i];
	}
	
	sort(number, number+N);
	dfs(0);
	
	return 0;
}

알게된 점

그냥 N과 M (1) 이랑 비슷했다.

그냥 풀면 된다

백트래킹 점점 감이 잡힌다

'하루하나코딩' 카테고리의 다른 글

백준 15656 : N과 M(7) c++  (0) 2023.02.17
백준 15655 : N과 M(6) c++  (0) 2023.02.15
백준 15652 : N과 M(4) c++  (1) 2023.02.15
백준 15651 : N과 M(3)  (0) 2023.02.11
백준 15650 : N과 M(2)  (0) 2023.02.10