"BOJ 15649 N과 M (1)"의 두 판 사이의 차이

 
11번째 줄: 11번째 줄:
bool visited[9] = {0};
bool visited[9] = {0};


void dfs(int x) {
void dfs(int cnt) {
     int i;
     int i;
     if(x == M) {
     if(cnt == M) {
         for(i=0; i<M; i++) {
         for(i=0; i<M; i++) {
             cout << arr[i] << ' ';
             cout << arr[i] << ' ';
23번째 줄: 23번째 줄:
         if(!visited[i]) {
         if(!visited[i]) {
             visited[i] = true;
             visited[i] = true;
             arr[x] = i;
             arr[cnt] = i;
             dfs(x+1);
             dfs(cnt+1);
             visited[i] = false;
             visited[i] = false;
         }
         }

2023년 9월 14일 (목) 01:25 기준 최신판

1 개요[ | ]

BOJ 15649 N과 M (1)


2 C++[ | ]

#include <iostream>
using namespace std;

int N, M;
int arr[9] = {0};
bool visited[9] = {0};

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

int main() {
    cin >> N >> M;
    dfs(0);
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}