|
์ฝ๋ ์์ฑํ๊ธฐ
n, m = map(int, input().split())
# print(n, m)
lst = [] # ์ค๋ณต์์ด์ ๋ด์ ๊ฐ(๊ณ์ ๋ณํ ๊ฑฐ์)
def dfs(idx): # ์์ ์ซ์์ ๋น๊ตํด์ผํ๋ฏ๋ก ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ์ค
if len(lst) == m: # ๋ฆฌ์คํธ ๊ธธ์ด๊ฐ lst๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ถ๋ ฅ
print(' '.join(map(str, lst)))
return
for i in range(idx, n+1): # idx์ด์ n์ดํ์ ์๋ฅผ ๋ฐ๋ณต
lst.append(i) # ์๋ฅผ ๋ํด์ฃผ๊ณ
# print(f"!1, i={i}, lst={lst}")
dfs(i) # ๋ํ ์๋ก ์ฌ๊ท
lst.pop() # ์์๋ณต๊ตฌ๋ฅผ ์ํด pop
dfs(1)
Python
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
1.
ํ์ฌ dfs๋ for๋ฌธ์์ ๋ฃ์ ์ซ์๋ณด๋ค ๊ฐ๊ฑฐ๋ ์ปค์ผํ๋ค. (ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ์ฃผ์ด์ ์ฒดํฌ)
2.
๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ m๊ณผ ๊ฐ์ผ๋ฉด ๋ต ์ถ๋ ฅ
3.
ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ซ์๋ณด๋ค ๊ฐ๊ฑฐ๋ ์ปค์ผํ๊ธฐ ๋๋ฌธ์ x์ด์ n์ดํ
4.
์๋ฅผ ๋ํด์ฃผ๊ณ ๋ํ ์๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๊ฐ์ง๊ณ dfs ํธ์ถ
5.
์ ์ํ๋ก ๋๋ฆฌ๊ธฐ ์ํด pop
<<์ฒซ 4 2 ๋ n, m์ ์๋ฏธํฉ๋๋ค>>