알고리즘(python)/탐색

[Python]백트래킹 백준 15650

개발일기 2020. 1. 4. 00:29
반응형

   문제

   https://www.acmicpc.net/problem/15650


이전문제와 달라진점은 오름차순 이어야한다는 점이다.

조건을 조금만 넣어주면 쉽게 해결할수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
n, m = map(int, input().split())    # n까지 m개
check=[0 for _ in range(n+1)]
result=[0 for _ in range(m)]
 
 
def backtracking(index,n,m):
    if index==m:
        for i in range(m):
            print(result[i], end=' ')
        print()
        return
 
    for i in range(1,n+1):
        if check[i]==1:#이전에 썻다면
            continue
        result[index]=#해당위치에 넣어줌
        for j in range(i+1):
            check[j]=1  #들어간 숫자보다 작은숫자 다 체크
        backtracking(index+1,n,m)
        for j in range(1,n+1):
            check[j]=0 #다음수로 넘어가기전에 전부 초기화
 
backtracking(0,n,m)
cs


반응형