Algorithm/BOJ
[백준] 15654번 - Silver3 N과 M(5), 파이썬 코드
ramin0119
2024. 9. 7. 23:39
728x90
solved.ac의 Class 4 문제 중 N과 M(5) 문제이다.
주어진 숫자들을 정렬한 리스트를 재귀 백트래킹하는 문제라는 것을 알 수 있다.
" 수열은 사전 순으로 증가하는 순서로 출력해야 한다. "이라는 문제의 특징이 있으니 조심하자.
해결했던 코드는 다음과 같다.
import sys
global n, m
numbers = []
lst = []
def backtracking(d):
# d가 m과 같아지면 return
if d == m:
print(" ".join(map(str, lst)))
return
for i in range(n):
if numbers[i] in lst: continue;
lst.append(numbers[i])
backtracking(d+1)
lst.pop()
if __name__ == "__main__":
n, m = map(int, sys.stdin.readline().split())
numbers = sorted(list(map(int, sys.stdin.readline().split())))
backtracking(0)
728x90