카테고리 없음
[BaekJoon 15651번] N과 M(3) (Python)
하루살이
2022. 3. 1. 20:38
N과 M(3) 문제입니다.
문제링크:
https://www.acmicpc.net/problem/15651
15651번: N과 M (3)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
풀이
조건: 중복 가능, 사전순 출력
N과 M(2)에서 오름차순은 기존 배열에서의 최댓값과 새로 입력할 숫자의 크기 비교만 제거하면 된다.
Code
# 중복 허용, 사전 순 출력
n, m = map(int, input().split())
result = [0] * (m+1)
def solve(depth):
if depth == m+1: # 탈출 조건
for i in range(1, m+1):
print(result[i], end=' ')
print()
else:
for i in range(1,n+1):
result[depth] = i # 방문한 번호 입력
solve(depth+1) # 깊이 우선 탐색
result[depth] = 0 # 방문 내용 제거
solve(1)