https://www.acmicpc.net/problem/15664
백준 15664 'N과 M (10)' 문제입니다.
N과 M에서 여러 조건들을 추가하였는데 그걸 중심으로 보시면 될 것 같습니다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
nums = list(map(int, input().split()))
nums.sort()
index = []
s = []
result = []
def dfs():
if len(s) == m:
a = " ".join(map(str, s))
if a not in result:
print(a)
result.append(a)
return
else:
return
for i in range(n):
if i not in index:
if not s or s[-1] <= nums[i]:
index.append(i)
s.append(nums[i])
dfs()
index.pop()
s.pop()
dfs()
N과 M 기본 코드
import sys
input = sys.stdin.readline
s = []
n , m = map(int, input().split())
def dfs():
if len(s) == m:
print(" ".join(map(str, s)))
return
for i in range(1, n+1):
if i not in s:
s.append(i)
dfs()
s.pop()
dfs()
'백준 알고리즘' 카테고리의 다른 글
파이썬) 백준 알고리즘 | 1463번 : 1로 만들기 (0) | 2022.03.04 |
---|---|
파이썬) 백준 알고리즘 | 15665번 : N과 M (11) (0) | 2022.03.04 |
파이썬) 백준 알고리즘 | 15663번 : N과 M (9) (0) | 2022.03.03 |
파이썬) 백준 알고리즘 | 15650번 : N과 M (2) (0) | 2022.03.03 |
파이썬) 백준 알고리즘 | 15657번 : N과 M (8) (0) | 2022.03.03 |
댓글