๋ฐฑ์ค 15649๋ฒ
๋ฐฑํธ๋ํน ๋ฌธ์ ๋ก ์ฃผ์ด์ง ๋ ์์ n๊ณผ m์์ 1~n๊น์ง์ m๊ฐ์ ์์ด์ ์ค๋ณต์์ด ์ถ๋ ฅํ๋ ๋ฌธ์ ์ ๋๋ค.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
li = []
def back():
global n, m, li
if len(li) == m:
print(' '.join(map(str, li)))
return
for i in range(1, n+1):
if i not in li: # ๊ฐ์ง์น๊ธฐ
li.append(i)
back()
li.pop()
back()
์์ ๋ฌธ์ ๋ ๋ฐฑํฌ๋ํน์ ์ฐ์ตํ๋ ๋ฌธ์ ์ ๋๋ค.
๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก DFS๊ฐ ์๋๋ฐ ๋ฐฑํธ๋ํน์ DFS์ ์ ์ฌํ์ง๋ง
์กฐ๊ฑด์ ์ถ๊ฐํ์ฌ ๋ถํ์ํ ์ผ์ ์ํํ์ง ์๋๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฐฉ๋ฒ์ ๋๋ค.