๐งฉ Problem Solving/[๋ฐฑ์ค]
[๋ฐฑ์ค] 15666 N๊ณผ M 12 (python ํ์ด์ฌ)
์ ๋ด์
2024. 3. 21. 20:00
15666๋ฒ: N๊ณผ M (12)
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด
www.acmicpc.net
๋ฐฑํธ๋ํน ๋ฌธ์
์์ด๋์ด
์ด์ฐจํผ ๊ฐ์ ์ซ์๋ฅผ ๋ฐ๋ณตํด์ ์ฌ์ฉํด๋ ๋๋ฏ๋ก, ๋ฌธ์ ์์ ์ ๊ณตํ N๊ฐ์ ์์์ ์ค๋ณต์ ์ ๊ฑฐํด ์ค๋ค.
๋ฐฑํธ๋ํน์ ํ์ฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด ๋๋ค.
์ ์ฒด ์ฝ๋
N, M = map(int, input().split())
numList = [int(x) for x in input().split()]
numList = sorted(list(set(numList))) # ์ค๋ณต ์ ๊ฑฐํ ์ ๋ ฌ
n = len(numList)
answer = list()
seq = []
def dfs(num, depth):
if depth == M:
print(" ".join(map(str, seq)))
return
for i in range(numList.index(num), n):
seq.append(numList[i])
dfs(numList[i], depth + 1)
seq.pop()
dfs(numList[0], 0)
์ฝ๋ ์ค๋ช
def dfs(num, depth):
if depth == M:
print(" ".join(map(str, seq)))
return
for i in range(numList.index(num), n):
seq.append(numList[i])
dfs(numList[i], depth + 1)
seq.pop()
์ ๊ณต๋ ์ซ์๋ค์ ์ํํ๋ฉฐ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ง๋ค์ด์ค๋ค.
์์ด์ ๊ธธ์ด๊ฐ M์ด ๋๋ฉด print๋ก ๋ฐ๋ก ์ถ๋ ฅํด ์ค๋ค. ์ด์ ์ ์ด๋ฏธ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํด ๋์์
์ถ๋ ฅ ์์๋ ๊ณ ๋ ค ์ ํด๋ ๋๋ค.