-
[๋ฐฑ์ค] 15655 N๊ณผ M (6) with PythonPS 2023. 4. 18. 16:33728x90๋ฐ์ํ
๐ BOJ 15655 N๊ณผ M (6)
๐ก ์กฐ๊ฑด
N๊ฐ์ ์์ฐ์์ ์์ฐ์ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๋ฌธ์ .
N๊ฐ์ ์์ฐ์๋ ๋ชจ๋ ๋ค๋ฅธ ์์ด๋ค.N๊ฐ์ ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
์์ด์ ์ค๋ฆ์ฐจ์์ด์ด์ผ ํ๋ค.์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 โค M โค N โค 8)
๋์งธ ์ค์ N๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์๋ 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ,
์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค.๋ฐฑํธ๋ํน ์ ํ์ ๋ฌธ์
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์ 1
3 1 4 5 2
์คํ๊ฒฐ๊ณผ 1
2 4 5
์์ 2
4 2 9 8 7 1
์คํ๊ฒฐ๊ณผ 2
1 7 1 8 1 9 7 8 7 9 8 9
์์ 3
4 4 1231 1232 1233 1234
์คํ๊ฒฐ๊ณผ 3
1231 1232 1233 1234
โจ๏ธ ๋ฌธ์ ํ์ด
์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ sort ํจ์๋ฅผ ํตํด ์ ๋ ฌํ๋ค.
ํจ์ f์์๋ m๊ณผ cnt๊ฐ ๊ฐ์ ๋ ๊ฒฐ๊ณผ๊ฐ์ ๋ด๊ณ ์๋ res ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๋ ฅํด์ค๋ค.
ํจ์ f์์๋ res ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 0๋ณด๋ค ํด ๋ res ๋ฐฐ์ด์ ๋งจ ๋ง์ง๋ง์ ์์์ ํ์ฌ ๋ฃ์ผ๋ ค๊ณ ํ๋ ์ซ์๋ฅผ ๋น๊ตํด ๋ฃ๋๋ค.
์ค๋ฆ์ฐจ์
๐ฅ ์์ค ์ฝ๋
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 range(cnt, n): if len(res) > 0: if res[-1] < arr[i]: f(res + [arr[i]], cnt + 1) else: f(res + [arr[i]], cnt + 1) f([], 0)
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 15657 N๊ณผ M (8) with Python (0) 2023.04.18 [๋ฐฑ์ค] 15656 N๊ณผ M (7) with Python (2) 2023.04.18 [๋ฐฑ์ค] 15654 N๊ณผ M (5) with Python (0) 2023.04.18 [๋ฐฑ์ค] 15652 N๊ณผ M (4) with Python (0) 2023.04.18 [๋ฐฑ์ค] 15651 N๊ณผ M (3) with Python (0) 2023.04.18