[백준] #15652 N과 M (4) python
2023. 1. 10. 06:00
https://www.acmicpc.net/problem/15652
15652번: N과 M (4)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
📕 설명 📕
backtracking 문제로, DFS에서 조건을 걸어 문제의 요구 사항에 맞게 출력한다.
중복 되는 수열을 여러 번 출력하지 않는다.
🧑🏻💻 나의 풀이 🧑🏻💻
N, M = map(int ,input().split())
result = []
visited = [False]*(N+1)
def DFS():
if len(result) == M:
print(' '.join(map(str, result)))
return
for i in range(1, N+1):
visited[i] = True
if len(result) != 0 and result[len(result)-1] > i:
continue
result.append(i)
DFS()
result.pop()
visited[i] = False
DFS()
'Programming > Algorithm' 카테고리의 다른 글
[백준] #11659 구간 합 구하기 4 (0) | 2023.01.12 |
---|---|
[백준] #9663 N-Queen python (0) | 2023.01.11 |
[백준] #7576 토마토 python (0) | 2023.01.09 |
[백준] #15651 N과 M (3) python (0) | 2023.01.08 |
[백준] #15650 N과 M (2) python (0) | 2023.01.07 |