[BaekJoon] ๋ฐฑ์ค 15666๋ฒ : N๊ณผ M (12)
Updated:
15666๋ฒ : N๊ณผ M (12)
[BaekJoon] ๋ฐฑ์ค 15657๋ฒ : N๊ณผ M (8) ๊ฐ์ ๋ฌธ์ ์ธ๋ฐ ๋ฐฐ์ด์ ์ง์ ์ ๋ ฅํ๋ค๋ ๋ถ๋ถ์ด ๋ค๋ฅธ ๋ฌธ์ ์ด๋ค.
์กฐ๊ฑด์์ ๊ฐ์ ์๋ฅผ ์ฌ๋ฌ๋ฒ ๊ณจ๋ผ๋ ๋๊ธฐ ๋๋ฌธ์ ์ค๋ณต ๊ฐ๋ค์ ์ ๋ถ ์์ค ๋ค ์กฐํฉ์ ๊ตฌํ๋ฉด ๋๋ค.
์กฐํฉ์ ์์๊ฐ ์๊ด ์๊ณ ์กฐ๊ฑด์์ ๋น๋ด๋ฆผ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ผ๊ณ ํ๊ธฐ ๋๋ฌธ์ ๋ค์ ์ค๋ ๊ฐ์ด ์์ ์ค๋ ๊ฐ๋ณด๋ค ์์ผ๋ฉด ์๋๋ค.
์ด ์กฐ๊ฑด๋ค์ ๋ค ์ง์ผ์ ์กฐํฉ์ ๋ง๋ค๋ฉด ๋๋ค.
๋ฌผ๋ก combination_with_replacement ๋ฅผ ์ฌ์ฉํด๋ ๋๋ค.
import sys
def DFS():
if len(stack) == m:
print(*stack)
return
for i in range(len(data)):
if stack and stack[-1] > data[i]:
continue
stack.append(data[i])
DFS()
stack.pop()
n, m = map(int, sys.stdin.readline().rsplit())
data = sorted(list(set(map(int, sys.stdin.readline().rsplit()))))
stack = []
DFS()
import sys
from itertools import combinations_with_replacement
n, m = map(int, sys.stdin.readline().rsplit())
data = sorted(list(set(map(int, sys.stdin.readline().rsplit()))))
for val in combinations_with_replacement(data, m):
print(*val)
Leave a comment