본문 바로가기

[알고리즘] 브루트포스

[백준 10974] 모든 순열

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

 

10974번: 모든 순열

N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.

www.acmicpc.net

[문제] N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.


[입력] 첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.


[출력] 첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.

 

N = int(input())
li = [i for i in range(1,N+1)]



def back(candi, len1):
    if len1==N:
        print(' '.join(map(str, candi)))
    else:
        for i in range(len(li)):
            if len(candi)==0:
                back(candi+[li[i]],len1+1)
            else:
                if li[i] not in candi:
                    back(candi+[li[i]], len1+1)

back([],0)

 

'[알고리즘] 브루트포스' 카테고리의 다른 글

[백준 1476] 날짜 계산  (0) 2020.04.06
[백준 2309] 일곱 난쟁이  (0) 2020.04.06