브루트포스로 나눠진 문제를 dfs로 풀어버린 ...
import sys
input = sys.stdin.readline
n = int(input())
factorial = []
def dfs():
if len(factorial) == n:
print(" ".join(map(str, factorial)))
return
for i in range(1, n+1):
if i not in factorial:
factorial.append(i)
dfs()
factorial.pop()
dfs()
이걸 브루트포스로 우에 푸노 ... 하다가
알고리즘 분류 살짝 보고 백트래킹 있길래 생각해보니 백트래킹으로 풀 수 있어서 그냥 dfs로 풀어버림 ~~!~
from itertools import permutations #순열 함수
N = int(input())
N_list = [i for i in range(1, N+1)]
for numbers in list(permutations(N_list)):
for num in numbers:
print(num, end=' ')
print()
풀이 출처: https://claude-u.tistory.com/368
이게 부르트포스 풀이겠지? itertools
을 들어보기만 했지 이렇게 유용할 줄이야 ... 다음부터 순열 같은 문제 나오면 활용해봐야겠다.
이렇게 쉬운 문제만 주세요 ...