๐ก ์กฐ๊ฑด
- N๊ฐ์ ์์ฐ์์ ์์ฐ์ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๋ฌธ์ .
N๊ฐ์ ์์ฐ์๋ ๋ชจ๋ ๋ค๋ฅธ ์์ด๋ค.
- N๊ฐ์ ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
๊ฐ์ ์๋ฅผ ์ฌ๋ฌ ๋ฒ ๊ณจ๋ผ๋ ๋๋ค.
- ์ฒซ์งธ ์ค์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 โค M โค N โค 7)
- ๋์งธ ์ค์ N๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์๋ 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
- ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ,
์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
- ๋ฐฑํธ๋ํน ์ ํ์ ๋ฌธ์
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์ 1
3 1
4 5 2
์คํ๊ฒฐ๊ณผ 1
2
4
5
์์ 2
4 2
9 8 7 1
์คํ๊ฒฐ๊ณผ 2
1 1
1 7
1 8
1 9
7 1
7 7
7 8
7 9
8 1
8 7
8 8
8 9
9 1
9 7
9 8
9 9
์์ 3
3 3
1231 1232 1233
์คํ๊ฒฐ๊ณผ 3
1231 1231 1231
1231 1231 1232
1231 1231 1233
1231 1232 1231
1231 1232 1232
1231 1232 1233
1231 1233 1231
1231 1233 1232
1231 1233 1233
1232 1231 1231
1232 1231 1232
1232 1231 1233
1232 1232 1231
1232 1232 1232
1232 1232 1233
1232 1233 1231
1232 1233 1232
1232 1233 1233
1233 1231 1231
1233 1231 1232
1233 1231 1233
1233 1232 1231
1233 1232 1232
1233 1232 1233
1233 1233 1231
1233 1233 1232
1233 1233 1233
โจ๏ธ ๋ฌธ์ ํ์ด
- ์ํํ๋ arr์ ์์๋ฅผ res ๋ฐฐ์ด์ ๋ฃ์ผ๋ฉด์ cnt๊ฐ m๊ณผ ๊ฐ์ ์ง ๋, res์ ์์๋ฅผ ์ถ๋ ฅํ๋ค.
- setrecursionlimit์ ๋ฐ๋์ ํด์ฃผ์ด์ผ ํ๋ค.
๐ฅ ์์ค ์ฝ๋
from sys import stdin, setrecursionlimit
setrecursionlimit(10 ** 7)
n, m = map(int, stdin.readline().split())
arr = list(map(int, stdin.readline().split()))
arr.sort()
def f(res, cnt):
if cnt == m:
print(*res)
return
for i in arr:
f(res + [i], cnt + 1)
f([], 0)