์ด๋ฒ์ฃผ๋ ๋ฐฑํธ๋ํน์ ๋ํ ํ์ต์ด ํ์ํ๋ค๊ณ ๋์จ ์ ๋ฒ์ฃผ์ ์ง๋จ์ ํ ๋๋ก ๋ฐฑํธ๋ํน์ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค!
์ต๊ทผ ์ฝํ ์์ dp์ ๋ฐฑํธ๋ํน์ ๋ํ ๋ฌธ์ ๋ค์ด ๋ง์ด ๋์ค๋ ๊ฒฝํ์ ํ์๊ณ , ๋ถ์กฑํ๋ค๊ณ ๋๋ ๋ถ๋ถ์ด์๋๋ฐ ์ด๋ฒ์ ๋ ์ด๊น์์ด ์ค๋ ฅํ๊ฐ์์ ์ ํํ ์ง๋จ์ ๋ฐ๊ฒ ๋์๋ค.
๋ฐฑํธ๋ํน
์ด์ ๋๋์ด novice ๋จ๊ณ๋ฅผ ์ง๋ intermediate๋จ๊ณ๋ก ๊ฐ๋๋ฐ ์ฒ์๋ถํฐ ๋๋ฌด ๋งํ๋ค.
๋ฐฑํธ๋ํน, ํ๋ถ ์์ ๋๋ ๋ฐฐ์์ ๋ญ ๋ง์ธ์ง๋ ์๊ฒ ์ผ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ์ ํ์๋ ์ฌ์ฉํ๋ ๊ฒ ์ด๋ ค์ ๋๋ฐ ํ๋ฒ ๊ณต๋ถํด๋ณด์! ๋ง์๋จน๊ณ ์ฒซ ๊ธฐ๋ณธ๋ฌธ์ ๋ฅผ ๋ณด๊ฒ๋์๋ค.
์ฝ๋ํธ๋ฆฌ์ ์ฅ์ ์ ์๋ฌด๋๋ ์น์ ํ๊ณ ์์ธํ ๊ฐ๋ ์ค๋ช ์ด์ง ์์๊น ์ถ๋ค.
์์ด, ์กฐํฉ์ ์ ๋๋ก ์๋ ๊ฑฐ ์์ด ๋จ์ํ ํ์ด์ฌ combination ๋ด์ฅํจ์ ๊ฐ์ ๊ฑธ ์ฌ์ฉํ์๋๋ฐ ๋ฐฑํธ๋ํน์ ์ ๋๋ก ๊ณต๋ถํด๋ณผ ์ ์๋ ๊ณ๊ธฐ๊ฐ ๋ผ์ ๋๋ฌด ์ข์๋ค.
์ค๋ ํ์ด๋ณธ ๋ฌธ์ ๋ ์๋ฌด๋๋ ๊ธฐ๋ณธ ๋ฌธ์ !
์๋! ๋ฐฑํธ๋ํน์ ์ดํดํ๋๋ฐ ์ค๋ ๊ฑธ๋ ค์ ์ด ๋ฌธ์ ์ ํ์ด๋ฅผ ์ค์ค๋ก ์๊ฐํด๋ด๊ธฐ์ ์ค๋ ๊ฑธ๋ ธ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์๋ ๋ฌธ์
# k๊ฐ ์ค์ 1๊ฐ๋ฅผ n๋ฒ ๋ฝ๊ธฐ
ํ์ด ์ ๋ต
์ด ๋ฌธ์ ๋ ์ด์ง์ ๊ตฌํ๋ ๋ฌธ์ ๋ฅผ ์๊ฐํ๋ฉด๋๋ค.
์ฝ๋ํธ๋ฆฌ๋ ์ด์ง์ ๊ตฌํ๋ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๊ฐ๋ ์ ์ค๋ช ํด์ฃผ์ด์ ๋ ์ดํด๊ฐ ์ ๊ฐ๋ค.
์ด์ง์ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก ํด์ํ๋ฉด k๊ฐ์ค์ 1๊ฐ๋ฅผ n๋ฒ ๋ฝ๊ธฐ => 2๊ฐ(0,1)์ค์ 1๊ฐ๋ฅผ n๋ฒ ์ ํํ๊ธฐ๊ฐ ๋๋๊น ์ด๊ฑธ ๋จผ์ ์๊ฐํด๋ณด์
๊ทธ๋ฌ๋ฉด ์๋ฆฟ์๋ง๋ค 0,1 ํ๋์ฉ ๋ฃ์ด์ฃผ๋ฉด ๋๊ณ , ์๋ฆฌ๋ง๋ค ๋ฃ๋ ํจ์ ์ด๋ฆ์ choose_number()์ด๋ผ๊ณ ํด๋ณด์
curr
์ธ์๋ฆฌ์(n=3)์ด๋ฉด choose_number(0)๋ถํฐ choose_number(2)๊น์ง ๋๋ฉด๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด ํจ์์ ์ข ๋ฃ์กฐ๊ฑด์ n์ผ๋๊ฐ ๋๋ ๊ฒ์ด๋ค.
์ด ๋ฉ์ปค๋์ฆ์ ๋๊ฐ์ด 2->k, 3->n์ผ๋ก ์๊ฐํ๋ฉด๋๋ค.
k, n = tuple(map(int, input().split()))
arr = []
def print_num():
for elem in arr:
print(elem, end=" ")
print()
def choose_number(curr_num):
if curr_num == n:
print_num()
return
for i in range(1, k+1):
arr.append(i)
choose_number(curr_num+1)
arr.pop()
choose_number(0)
choose_number ํจ์๋ curr_num์๋ฆฌ์ for๋ฌธ์ ํตํด์ 1๋ถํฐ k๊น์ง์ ์ซ์๋ฅผ ๋ฃ๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ๋ธ๋ก๊ทธ๋ก ๋ค์ ์ ๋ฆฌํ๋ฉด์ ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๋ณด๋๊น ๋ ์ดํด๊ฐ ์๋๊ณ ์๋ค!
๋ฐฑํธ๋ํน ์ดํด๊ฐ ์ด๋ ค์ ์ด์ ๋ฌธ์ ๋ฅผ ๋ง์ด ๋ชปํ์๋๋ฐ ์ดํด๋์๋ ๋นจ๋ฆฌ ํ์ด์ ๋ด ๊ฒ์ผ๋ก ๋ง๋ค์ด์ผ๊ฒ ๋ค!
๋นจ๋ฆฌ ํ๊ณ ๋์์ ๋ค์์ฃผ ์ค๋ ฅ์ง๋จํ๊ฐ ์ ์๊ฐ ๊ธฐ๋๋๋น,,
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ/13164] ํ๋ณต ์ ์น์ (๊ทธ๋ฆฌ๋) (0) | 2023.10.11 |
---|---|
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 5์ฃผ์ฐจ (10/4-10/9), DFS (0) | 2023.10.09 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 4์ฃผ์ฐจ (9/27-10/2), ๋ฐฑํธ๋ํน (0) | 2023.09.30 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 2์ฃผ์ฐจ (9/13-9/18), ์์ ํ์ (0) | 2023.09.18 |
[BOJ/1254] ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ (๋ฌธ์์ด) (0) | 2023.09.13 |