|
์ฝ๋ ์์ฑํ๊ธฐ
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] ํํ๋ก ์ถ๋ ฅ๋๋๋ก ํ๋ค.