https://www.acmicpc.net/problem/10974
[문제] 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 |