Algorithm/백준

[BOJ] 10974 - 모든 순열

비번변경 2022. 5. 8. 20:07

문제

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)

 


참고 문서

https://docs.python.org/ko/3/library/itertools.html