๋ฌธ์
https://www.acmicpc.net/problem/15649
๋ด ๋ฌธ์ ํ์ด
n, m = map(int, input().split())
tmp = []
def dfs():
if len(tmp) == m:
print(' '.join(map(str, tmp)))
return
for i in range(1, n+1):
if i not in tmp:
tmp.append(i)
dfs()
tmp.pop()
dfs()
๐ ๋ฐฑํธ๋ํน ๋ฌธ์ !
- ์์ด์ ๋ง๋ค์ด์ค tmp ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ ๊ณ์ ๊ฐฑ์ ํ๋ ๋ฐฉ์์ผ๋ก ํ์ดํ๋ค.
- dfs ํจ์์์ tmp ๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ m์ด ๋๋ค๋ฉด, ํ๋์ ์์ด์ด ์์ฑ๋์๋ค๋ ๋ป์ด๋ฏ๋ก
join์ ํ์ฉํ์ฌ ์์ด์ ์ถ๋ ฅํด์ค ํ ํจ์๋ฅผ ๋ฐํํ๋ค. - ์์ด์ด ์์ฑ๋๊ธฐ ์ ๊น์ง๋ for๋ฌธ์ ์ฌ์ฉํ์ฌ 1๋ถํฐ n๊น์ง ์ซ์๋ฅผ ํ๋์ฉ ์ถ๊ฐํด์ฃผ์๋ค.
tmp ๋ฆฌ์คํธ๋ฅผ ๊ฒ์ฌํด์ i๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด i๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ , dfs ํจ์๋ฅผ ์ฌ๊ทํธ์ถํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ฐฉ๊ธ ์ถ๊ฐํ i๋ฅผ ์ ๊ฑฐํด์ฃผ์ด์, ๋ค์ ๋ฐ๋ณต์์๋ ๋ ์๋ก์ด ์์ด์ ๋ง๋ค ์ ์๊ฒ ํ๋ค.
๐ก ํผ๋๋ฐฑ
- ๋ฐฑํธ๋ํน ๊ณต๋ถ๋ฅผ ์ํด์ ํ์๋๋ฐ, ๊ฐ์ด ์ค๋ ๊ฒ ๊ฐ๊ธฐ๋,,!
'4๏ธโฃ Python > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python Algorithm] N๊ณผ M (3) BOJ #15651 (0) | 2022.02.15 |
---|---|
[Python Algorithm] N๊ณผ M (2) BOJ #15650 (0) | 2022.02.15 |
[Python Algorithm] Q-์ธ๋ฑ์ค BOJ #13333 (0) | 2022.02.10 |
[Python Algorithm] ๊ณ๋จ ์ค๋ฅด๊ธฐ BOJ #2579 (0) | 2022.02.04 |
[Python Algorithm] ๋ ๋ฐ๋จน๊ธฐ Programmers(Lv.2) (0) | 2022.02.04 |
๋๊ธ