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를 뒤로 하나씩 밀어 탐색 범위를 하나씩 줄여준다.

'practivceAlgorithm > 백준' 카테고리의 다른 글

[백준][Python] 4446 ROT12  (1) 2021.07.17
[백준][Python] 2529 부등호  (0) 2021.07.16
[백준][Python] 13398 연속합 2  (0) 2021.07.11
[백준][Python] 1717 : 집합의표현  (0) 2021.07.10
[백준][Python] 10775: 공항  (0) 2021.07.10