1. N과 M (2)
해결 방법 : 백트래킹
이유 :
그냥 저번 코드에서 조건만 변경하면 완료. 백트래킹에 대한 지식 필요
참고 자료 : X
문제 :
15650번: N과 M (2)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
n, m = map(int, input().split())
def f(s):
if len(s) == m:
if s == sorted(s):
print(' '.join(map(str, s)))
return
for i in range(1, n + 1):
if i in s:
continue
f(s + [i])
f([])
2. N과 M (3)
해결 방법 : 백트래킹
이유 :
그냥 저번 코드에서 조건만 변경하면 완료. 백트래킹에 대한 지식 필요
참고 자료 : X
문제 :
15651번: N과 M (3)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
n, m = map(int, input().split())
def f(s):
if len(s) == m:
print(' '.join(map(str, s)))
return
for i in range(1, n + 1):
f(s + [i])
f([])
'일상 > Algorithm' 카테고리의 다른 글
21.04.19 알고리즘 공부 25일차 (brute force) (0) | 2021.04.19 |
---|---|
21.04.14 알고리즘 공부 24일차 (백트래킹) (0) | 2021.04.14 |
21.04.12 알고리즘 공부 22일차 (0) | 2021.04.12 |
21.04.06 알고리즘 공부 21일차 (0) | 2021.04.06 |
21.03.30 알고리즘 공부 20일차 (0) | 2021.03.30 |