알고리즘💻/Bruteforce&Backtracking
BOJ 15650번: N과 M(2)
호프
2021. 1. 16. 22:25
15650번: N과 M (2)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
아이디어:
역시 재귀함수를 이용한다.
오름차순으로 출력하므로 중복을 따로 검사하지 않아도 중복이 보장된다.
코드:
import sys
n, m = map(int, sys.stdin.readline().split())
ans = [0]*m
def solve(level, start):
if (level==m):
for i in ans:
print(i, end=" ")
print()
return
for i in range(start+1, n+1):
ans[level]=i
solve(level+1, i)
solve(0,0)