반응형
문제
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]=i #해당위치에 넣어줌 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 |
최근댓글