파이썬 백준 15649번
실버3
https://www.acmicpc.net/problem/15649
문제 보기
뭍제 풀기
DFS 를 활용한다.
없는 원소일경우 새로 추가하기 위해 num_sequence.append(i) 를 사용하고,
순차적으로 진행되는 다음 상위 트리구조로 이동하기 위해 num_sequence.pop() 를 이용한다.
코드 보기
import sys
inputdata = sys.stdin.readline
N, M = map(int, inputdata().split())
num_sequence = []
def fnDFS():
if len(num_sequence) == M:
print(*num_sequence)
return
for i in range(1, N + 1):
if i not in num_sequence:
num_sequence.append(i)
fnDFS()
num_sequence.pop()
fnDFS()
# 4 4
# 1 2 3 4
# 1 2 4 3
# 1 3 2 4
# 1 3 4 2
# 1 4 2 3
# 1 4 3 2
# 2 1 3 4
# 2 1 4 3
# 2 3 1 4
# 2 3 4 1
# 2 4 1 3
# 2 4 3 1
# 3 1 2 4
# 3 1 4 2
# 3 2 1 4
# 3 2 4 1
# 3 4 1 2
# 3 4 2 1
# 4 1 2 3
# 4 1 3 2
# 4 2 1 3
# 4 2 3 1
# 4 3 1 2
# 4 3 2 1
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 4949 - 균형잡힌 세상 (0) | 2022.09.21 |
---|---|
[Python] 백준 풀기 15652 - N과 M (4) (2) | 2022.09.21 |
[Python] 백준 풀기 15651 - N과 M (3) (0) | 2022.09.20 |
[Python] 백준 풀기 11866 - 요세푸스 문제 0 (0) | 2022.09.19 |
[Python] 백준 풀기 15650 - N과 M (2) (0) | 2022.09.19 |