Search
๐ŸŽ

๊ณฝ์ฒ ๋ฏผ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
1440
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
import sys input = sys.stdin.readline def dfs(): if len(nums) == m: print(*nums) return for i in range(1, n+1): if not checked[i]: checked[i] = True nums.append(i) dfs() checked[i] = False nums.pop() n,m = map(int, input().split()) nums = [] checked = [False] * (n+1) dfs()
Python
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
1.
๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ n,m์„ ์ž…๋ ฅ ๋ฐ›๊ณ , ์ˆ˜์—ด์„ ๋‹ด์•„์ค„ nums ๋ฆฌ์ŠคํŠธ์™€, ์ฒดํฌ ์—ฌ๋ถ€๋ฅผ ๊ธฐ๋กํ•  checked ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.
2.
dfs() ํ•จ์ˆ˜๋Š”, ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•ด์ฃผ๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜๋กœ, DFS์˜ ์›๋ฆฌ๊ฐ€ ๊ตฌํ˜„๋œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
3.
์ฒดํฌ ๋˜์ง€ ์•Š์€ ์ˆ˜๋Š” ์ฒดํฌํ•ด์ค๋‹ˆ๋‹ค.
4.
์ฒดํฌํ•œ ์ˆ˜๋ฅผ ์ˆ˜์—ด ๋ฆฌ์ŠคํŠธ์— ๋‹ด์•„์ค๋‹ˆ๋‹ค.
5.
dfs()๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์—ฌ, ์ฒดํฌ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ˆ˜๋ฅผ ์ฒดํฌํ•ด์ฃผ๊ณ , ์ˆ˜์—ด ๋ฆฌ์ŠคํŠธ์— ๋‹ด์•„์ค๋‹ˆ๋‹ค.
6.
์ˆ˜์—ด์˜ ๊ธธ์ด๊ฐ€ m๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ, ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๊ณ  ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒ์‹œ์ผœ์ค๋‹ˆ๋‹ค.
7.
์žฌ๊ท€ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์œผ๋ฉด ๋‹ค์‹œ ํ˜ธ์ถœ๋œ ๊ณณ์œผ๋กœ ๋Œ์•„์™€, ๊ทธ ๋•Œ i์˜ ์ฒดํฌ ์—ฌ๋ถ€๋ฅผ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ๊ณ , ์ˆ˜์—ด ๋ฆฌ์ŠคํŠธ์—์„œ i๋ฅผ ์ œ์™ธ ์‹œํ‚ต๋‹ˆ๋‹ค.
8.
3-7์˜ ๊ณผ์ •์„ n๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.