Search

๊ณฝ์ฒ ๋ฏผ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
1200
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
n,m = map(int, input().split()) nums = [] def dfs(start): if len(nums) == m: print(*nums) return for i in range(start,n+1): nums.append(i) dfs(i) nums.pop() dfs(1)
Python
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
1.
n(์ „์ฒด ๊ฐœ์ˆ˜), m(์ž๋ฆฟ์ˆ˜)์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
2.
๊ฒฐ๊ณผ๋ฅผ ๋‹ด์•„์ฃผ๊ธฐ ์œ„ํ•ด nums ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
3.
dfs() ํ•จ์ˆ˜
3.1 for i in range(start, n+1)๊ณผ ๊ฐ™์€ ๋ฐ˜๋ณต๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, ์ด ๋•Œ, [1,1], [1,2], โ€ฆ [4,4]์™€ ๊ฐ™์ด ๊ณ ๋ฅธ ์ˆ˜์—ด์„ ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ(์•ž์˜ ์ˆ˜๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Œ)์˜ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด์ฃผ๊ธฐ ์œ„ํ•ด ์žฌ๊ท€๋ฅผ ํ™œ์šฉํ•œ๋‹ค.
3.2 ์ด ๋•Œ, ๊ฒฐ๊ณผ๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋Š” nums ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ ์ œํ•œ๋œ ์ž๋ฆฟ์ˆ˜์ธ m๊ณผ ๊ฐ™์œผ๋ฉด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.
3.3 nums.pop() ์žฌ๊ท€ ํ˜ธ์ถœ์ด ์ข…๋ฃŒ๋˜๊ณ  ๋‹ค์‹œ ๋Œ์•„์˜ค๋ฉด, nums ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ’์„ ๋นผ์คŒ์œผ๋กœ์จ, ๊ธธ์ด๊ฐ€ m์ธ ์ˆ˜๋“ค์„ [i, start~n+1] ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋˜๋„๋ก ํ•œ๋‹ค.