Algorithm Problems
[백준] [Python] 15655번 N과 M (6) - 백트래킹 - [대표예제]
WakaraNai
2021. 5. 16. 01:13
728x90
반응형
https://www.acmicpc.net/problem/15655
15655번: N과 M (6)
N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열
www.acmicpc.net
Python
n, m = map(int, input().split())
arr = list(map(int, input().split()))
arr.sort()
nums = []
def back(k, idx):
if k == m:
print(' '.join(map(str, nums)))
return
for i in range(idx, n):
nums.append(arr[i])
back(k+1, i+1)
nums.pop()
back(0, 0)
오답
문자열을 그대로 정렬하면 사전순 배열이 되어 오답
꼭 숫자로 만들어 정렬한 뒤, join할 때 str로 바꿔주자
import sys
n, m = map(int, sys.stdin.readline().split())
####
arr = sys.stdin.readline().split()
arr.sort()
####
visit = [0]*n
nums = []
def back(k,idx):
if k==m:
print(" ".join(nums))
return
for i in range(idx,n):
nums.append(arr[i])
back(k+1,i+1)
nums.pop()
back(0,0)
728x90
반응형