문제
https://www.acmicpc.net/problem/10974
1 \( \leq \) N \( \leq \) 8인 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하라.
풀이
Python에 순열/조합과 관련된 라이브러리로 itertools를 지원하고 있어, 해당 라이브러리를 사용하였다. intertools의 permutations 모듈이 순열에 해당한다.
permutations 함수는 interable한 데이터와 길이 r을 매개변수로 입력받아, r 길이의 시퀀스를 반환한다. tuple은 입력받은 iterable 순서에 따라 사전식 순서로 출력된다.
코드
from itertools import permutations
import sys
n = int(sys.stdin.readline())
for t in permutations([i for i in range(1, n + 1)], n):
print(*t)
참고 문서