반응형

   문제

   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


반응형

'알고리즘(python) > 탐색' 카테고리의 다른 글

[Python]백트래킹 백준 15652  (0) 2020.01.04
[Python]백트래킹 백준 15651  (0) 2020.01.04
[Python]백트래킹 백준 15649  (0) 2020.01.04
[Python]Brute force 백준 1436  (0) 2019.12.17
[Python]Brute force 백준 1018  (0) 2019.12.17
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기