링크: https://www.acmicpc.net/problem/15656
유형: 백트래킹
난이도: 실버3
스스로 풀었는가? ✅
import sys
N, M = 0, 0
sequence = []
visited = []
answer = []
def back(cnt):
global N, M, sequence, visited, answer
if cnt == M:
print(' '.join(map(str, answer)))
return
for i in range(N):
answer.append(sequence[i])
back(cnt + 1)
answer.pop()
readline = sys.stdin.readline
N, M = map(int, readline().split())
sequence = list(map(int, readline().split()))
sequence.sort()
visited = [False] * N
if M == 1:
output = '\n'.join(map(str, sequence))
print(output)
else:
back(0)
print(*answer)
으로 쉽게 정답을 출력할 수 있다.import sys
N, M = 0, 0
sequence = []
answer = []
def back(cnt):
global N, M, sequence, answer
if cnt == M:
print(*answer)
return
for i in range(N):
answer.append(sequence[i])
back(cnt + 1)
answer.pop()
readline = sys.stdin.readline
N, M = map(int, readline().split())
sequence = list(map(int, readline().split()))
sequence.sort()
back(0)
[ktb-algorithm-study] 2주차