본문 바로가기
카테고리 없음

[C] 백준 - 10974번: 모든 순열

by C0MPAS 2024. 5. 23.

5월 23일(목) - 브루트포스(10974번)

https://www.acmicpc.net/problem/10974


최초 생각 정리


문제점

1. 출력하는 경우 "1 2 3" 으로 공백을 주지않고, "!23"으로 출력하다가 3번 틀려먹었다

-> 출력조건을 다시 한 번 살펴보도록 하자


풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>
#include <stdbool.h>

int N;
int arr[10];
bool visited[10];

void solve(int num)
{
	if (num == N)
	{
		for (int i = 0; i < N; i++)
		{
			printf("%d ", arr[i]);
		}
		printf("\n");
		return;
	}

	for (int i = 0; i < N; i++)
	{
		if (visited[i] != true)
		{
			visited[i] = true;
			arr[num] = i + 1;
			solve(num + 1);
			visited[i] = false;
		}
	}
}

int main(void)
{
	scanf("%d", &N);

	solve(0);
	return 0;
}

댓글