본문 바로가기
백준

[15651] N과 M (3)

by kmyobin 2022. 9. 6.


https://kmyobin.tistory.com/58?category=1084833 

 

[15649] N과 M (1)

백트래킹 문제이다 오랜만에 다시 공부하니까 머리 터질 것 같다 dfs 방식으로 문제를 풀 것이다 1. 중복이 되지 않으면서 2. 순열(순서를 따짐) 이어야 한다 그래프를 그려보면 일단 중복인 값들

kmyobin.tistory.com

백준 15649번과 다른 점은 같은 수를 여러 번 골라도 된다는 것.

전에는 같은 수를 다시 반복해서는 안됐기 때문에 visited 배열을 만들어줘서 해당 숫자를 사용했었는지 따져보았는데, 이제 그럴 필요가 없다

 

그러므로 기존에 풀었던 15649번 코드에서 visited와 관련된 코드를 빼면 완성된다

그렇게 완성된 코드는 아래와 같다

#include <iostream>
using namespace std;

int N, M;
int A[7];

void f(int x) {
	if (x == M) {
		for (int i = 0; i < M; i++) {
			printf("%d ", A[i]);
		}
		printf("\n");
		return;
	}
	for (int i = 1; i <= N; i++) {
		A[x] = i;
		f(x + 1);
	}
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> N >> M;

	f(0);

}

'백준' 카테고리의 다른 글

[9663] N-Queen  (0) 2022.09.08
[15652] N과 M (4)  (0) 2022.09.06
[15650] N과 M (2)  (0) 2022.09.04
[15649] N과 M (1)  (0) 2022.09.04
[2004] 조합 0의 개수  (0) 2022.09.03

댓글