백트래킹 사골 15649-15657
This commit is contained in:
10
zeta_python/completed/15649_backtracking.py
Normal file
10
zeta_python/completed/15649_backtracking.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
N, M = map(int, input().split())
|
||||||
|
trace = [(list(range(1, N + 1)), M, [])]
|
||||||
|
|
||||||
|
while trace:
|
||||||
|
n, m, d = trace.pop()
|
||||||
|
for i in range(len(n) - 1, -1, -1):
|
||||||
|
trace.append((n[:i] + n[i + 1:], m - 1, d + [n[i]]))
|
||||||
|
if m == 0:
|
||||||
|
print(" ".join(map(str, d)))
|
||||||
|
# 아마도 백트래킹일거임 아마도 그럼 ㅇㅇ
|
||||||
11
zeta_python/completed/15650.py
Normal file
11
zeta_python/completed/15650.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
N, M = map(int, input().split())
|
||||||
|
trace = [([i], M, i) for i in range(N, 0, -1)] # prev, depth, now
|
||||||
|
|
||||||
|
while trace:
|
||||||
|
p, d, n = trace.pop()
|
||||||
|
for i in range(N, n, -1):
|
||||||
|
trace.append((p + [i], d-1, i))
|
||||||
|
|
||||||
|
if d == 1:
|
||||||
|
print(" ".join(map(str, p)))
|
||||||
|
# 아마도 백트래킹일거임 아마도 그럼 ㅇㅇ
|
||||||
11
zeta_python/completed/15651.py
Normal file
11
zeta_python/completed/15651.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
N, M = map(int, input().split())
|
||||||
|
trace = [([i], M) for i in range(N, 0, -1)] # prev, depth
|
||||||
|
|
||||||
|
while trace:
|
||||||
|
p, d = trace.pop()
|
||||||
|
if d == 1:
|
||||||
|
print(" ".join(map(str, p)))
|
||||||
|
continue
|
||||||
|
for i in range(N, 0, -1):
|
||||||
|
trace.append((p + [i], d-1))
|
||||||
|
# 킹트래킹
|
||||||
12
zeta_python/completed/15652.py
Normal file
12
zeta_python/completed/15652.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
N, M = map(int, input().split())
|
||||||
|
trace = [([i], M, i) for i in range(N, 0, -1)] # prev, depth, now
|
||||||
|
|
||||||
|
while trace:
|
||||||
|
p, d, n = trace.pop()
|
||||||
|
if d == 1:
|
||||||
|
print(" ".join(map(str, p)))
|
||||||
|
continue
|
||||||
|
for i in range(N, n-1, -1):
|
||||||
|
trace.append((p + [i], d-1, i))
|
||||||
|
|
||||||
|
# 코드 재사용 팝트래킹
|
||||||
10
zeta_python/completed/15654.py
Normal file
10
zeta_python/completed/15654.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
N, M = map(int, input().split())
|
||||||
|
trace = [(sorted(list(map(int, input().split()))), M, [])]
|
||||||
|
|
||||||
|
while trace:
|
||||||
|
n, m, d = trace.pop()
|
||||||
|
for i in range(len(n) - 1, -1, -1):
|
||||||
|
trace.append((n[:i] + n[i + 1:], m - 1, d + [n[i]]))
|
||||||
|
if m == 0:
|
||||||
|
print(" ".join(map(str, d)))
|
||||||
|
# 아마도 백트래킹일거임 아마도 그럼 ㅇㅇ
|
||||||
13
zeta_python/completed/15655.py
Normal file
13
zeta_python/completed/15655.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
N, M = map(int, input().split())
|
||||||
|
K = list(map(int, input().split()));K.sort()
|
||||||
|
trace = [([v], M, i) for i, v in reversed(list(enumerate(K)))] # prev, depth, now
|
||||||
|
|
||||||
|
while trace:
|
||||||
|
p, d, n = trace.pop()
|
||||||
|
if d == 1:
|
||||||
|
print(" ".join(map(str, p)))
|
||||||
|
continue
|
||||||
|
for i in range(N-1, n, -1):
|
||||||
|
trace.append((p + [K[i]], d-1, i))
|
||||||
|
|
||||||
|
# 아마도 백트래킹일거임 아마도 그럼 ㅇㅇ
|
||||||
13
zeta_python/completed/15656.py
Normal file
13
zeta_python/completed/15656.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
N, M = map(int, input().split())
|
||||||
|
K = list(map(int, input().split()));K.sort()
|
||||||
|
trace = [([v], M, i) for i, v in reversed(list(enumerate(K)))] # prev, depth, now
|
||||||
|
|
||||||
|
while trace:
|
||||||
|
p, d, n = trace.pop()
|
||||||
|
if d == 1:
|
||||||
|
print(" ".join(map(str, p)))
|
||||||
|
continue
|
||||||
|
for i in range(N-1, -1, -1):
|
||||||
|
trace.append((p + [K[i]], d-1, i))
|
||||||
|
|
||||||
|
# 아마도 백트래킹일거임 아마도 그럼 ㅇㅇ
|
||||||
13
zeta_python/completed/15657.py
Normal file
13
zeta_python/completed/15657.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
N, M = map(int, input().split())
|
||||||
|
K = list(map(int, input().split()));K.sort()
|
||||||
|
trace = [([v], M, i) for i, v in reversed(list(enumerate(K)))] # prev, depth, now
|
||||||
|
|
||||||
|
while trace:
|
||||||
|
p, d, n = trace.pop()
|
||||||
|
if d == 1:
|
||||||
|
print(" ".join(map(str, p)))
|
||||||
|
continue
|
||||||
|
for i in range(N-1, n-1, -1):
|
||||||
|
trace.append((p + [K[i]], d-1, i))
|
||||||
|
|
||||||
|
# 아마도 백트래킹일거임 아마도 그럼 ㅇㅇ
|
||||||
Reference in New Issue
Block a user