๋ฌธ์
https://www.acmicpc.net/problem/15649
15649๋ฒ: N๊ณผ M (1)
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด
www.acmicpc.net
๋ด ๋ฌธ์ ํ์ด
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 |
๋๊ธ