공부 기록장
[백준 - Python] 10974. 모든 순열 (완전 탐색) 본문
https://www.acmicpc.net/problem/10974
코드
from itertools import permutations
n = int(input())
arr = [i for i in range(1, n+1)]
per = list(permutations(arr, n))
for p in per:
print(*p)
순열 라이브러리를 활용해서 풀었다.
리스트 뿐만 아니라 튜플도
*표시를 통해 숫자를 띄어쓰기로 구분하여 한 줄에 간편하게 출력할 수 있다.
다른 풀이
순열 라이브러리를 활용하지 않고 백트래킹을 활용한 풀이도 있었다.
n = int(input())
temp = []
def backtracking():
if len(temp) == n:
print(*temp)
return
for i in range(1, n+1):
if i not in temp:
temp.append(i)
backtracking()
temp.pop()
backtracking()
백트래킹의 기본 예시로 알아둬도 좋을 것 같다.
이번 문제에서는 백트래킹 보다는 순열 라이브러리를 활용하는 풀이가 더 수행 속도가 빨랐다.
참고 자료
'코딩 테스트 > 백준 문제 풀이' 카테고리의 다른 글
[백준 - Python] 14889. 스타트와 링크 (완전 탐색) (0) | 2024.02.01 |
---|---|
[백준 - Python] 10819. 차이를 최대로 (완전 탐색) (0) | 2024.02.01 |
[백준 - Python] 1182. 부분수열의 합 (완전 탐색) (0) | 2024.01.30 |
[백준 - Python] 1436. 영화감독 숌 (완전 탐색) (0) | 2024.01.30 |
[백준 - Python] 1065. 한수 (0) | 2024.01.29 |