https://www.acmicpc.net/problem/15652
15652번: N과 M (4)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
12개의 비슷한 문제가 있는 문제 (1)~(12)
문제 접근
백트래킹
문제를 읽어보면 끝자리를 계속 바꿔나가니 스택으로 접근하기 가장 알맞아보인다.
스택으로 접근하는데 모든경우를 탐색한다는 것은 dfs를 사용하면 쉽게 풀린다.
코드
import sys
input = sys.stdin.readline
"""
"""
N, M = map(int,input().split())
arr = []
def dfs(x):
if len(arr)==M:
print(*arr)
return
for i in range(x,N+1):
arr.append(i)
dfs(i)
arr.pop()
dfs(1)
'백준 > 문제풀이_python' 카테고리의 다른 글
15655 N과M(6) _python (0) | 2022.10.17 |
---|---|
15654 N과M(5) _python (0) | 2022.10.17 |
15651 N과M(3) _python (0) | 2022.10.17 |
15650 N과M(2) _python (0) | 2022.10.17 |
15649 N과M(1) _python (0) | 2022.10.17 |
댓글