Notice
Recent Posts
Recent Comments
Link
궤도
[백준] 15651번 : N과 M (3) 본문
문제
풀이
myunji.tistory.com/198?category=1154147
[백준] 15650번 : N과 M (2)
문제 풀이 myunji.tistory.com/73?category=1154147 [백준] 15649번 : N과 M (1) 문제 풀이 백트래킹의 기본 문제이다. 백트래킹은 해당 value의 방문 여부를 따지며 주로 재귀함수로 구현하는 경우가 많다. 그렇..
myunji.tistory.com
번호로는 위 문제의 다음이지만 사실 이 문제가 더 간단하다.
왜냐하면 현재 노드를 기억해 둘 필요도 없고...눈치가 빠른 사람은 알겠지만 입력에 따른 출력 갯수가 N^M이다.
소스코드
#include <iostream>
using namespace std;
const int MAX = 8;
int N, M;
int arr[MAX];
void backNM(int cnt) {
if (cnt == M) { //배열 끝까지 완성하면 출력
for (int i = 0; i < M; i++)
cout << arr[i] << ' ';
cout << '\n';
}
else {
for (int i = 0; i < N; i++) {
arr[cnt] = i + 1;
backNM(cnt + 1); //가지 아래로 내려감
}
}
}
int main() {
cin >> N >> M;
backNM(0);
}
그러니까 15650번의 코드에서 flag 부분만 제외하면 된다.
Comments