๋ฌธ์
์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 8)
์ถ๋ ฅ
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค.
์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
์ ๋ต
def dfs(L):
if L==m:
for j in range(L):
print(res[j], end=' ')
print()
else:
for i in range(1, n+1): #1๋ถํฐ n๊น์ง
if ch[i] == 0: # i๊ฐ 0์ด ์๋๋
ch[i] = 1 # 1๋ก ๋ฐ๊ฟ์ค๋ค.
res[L] = i #res[L]์ i๋ฅผ ๋ฃ์ด์ค๋ค.
dfs(L + 1) #๋ ๋ฒจ์ด ํ๋ ์ฆ๊ฐ
ch[i] = 0 # ๋ค์ ๋ฐ๊ฟ์ค๋ค.
n, m = map(int, input().split())
res = [0] * n #๊ฒฐ๊ณผ ์ถ๋ ฅ
ch = [0] * (n + 1) #์ฒดํฌ๋ฆฌ์คํธ
dfs(0)
.
.
.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 1931 - ํ์์ค ๋ฐฐ์ (0) | 2021.02.10 |
---|---|
[Python] ๋ฐฑ์ค 2480 - ์ฃผ์ฌ์ ์ธ๊ฐ (0) | 2021.02.02 |
[Python] ๋ฐฑ์ค 5355 - ํ์ฑ ์ํ (0) | 2021.01.25 |
[Python] ๋ฐฑ์ค 7569 - ํ ๋งํ (0) | 2021.01.25 |
[Python] ๋ฐฑ์ค 7576 - ํ ๋งํ (0) | 2021.01.24 |