[백준] #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

BELATED ARTICLES

more