practivceAlgorithm/백준

[백준][PYTHON] 15649 15650 N과 M (1),(2)

findTheValue 2021. 7. 14. 16:10
n,m = list(map(int,input().split()))
s = []
def dfs():
    if len(s)==m:
        print(' '.join(map(str,s)))
        return
    
    for i in range(1,n+1):
        if i not in s:
            s.append(i)
            dfs()
            s.pop()
dfs()

어렵지 않다. 조건에 맞는 배열을 탐색, 출력하는 것이므로 dfs로 탐색 출력을 진행.

n,m = list(map(int,input().split()))
s = []
def dfs(start):
    if len(s)==m:
        print(' '.join(map(str,s)))
        return
    
    for i in range(start,n+1):
        if i not in s:
            s.append(i)
            dfs(i+1)
            s.pop()
dfs(1)

15650은 겹치는 배열을 가지지 않게 하기위해(순서만 다른 배열) start를 뒤로 하나씩 밀어 탐색 범위를 하나씩 줄여준다.