https://www.acmicpc.net/problem/10974
n = int(input())
arr = [i for i in range(1, n + 1)]
check = [False] * n
choose = []
def permutation(level):
if level == n:
print(*choose)
return
for i in range(n):
if check[i] == True:
continue
choose.append(arr[i])
check[i] = True
permutation(level + 1)
check[i] = False
choose.pop()
permutation(0)
์๊ฐ
์ ๋ชฉ ๊ทธ๋๋ก ์์ด ๋ฌธ์ , ์กฐํฉ๊ณผ ๋น์ทํ ๋ฐฉ์์ผ๋ก ํ๋ฉด ๋๋ค.
(1, 1), (2, 2), (3, 3).. ์ ๊ฐ์ ์ค๋ณต๋ ์๋ฅผ ๊ณ ๋ฅผ ์ ์๊ธฐ์ check ๋ฐฐ์ด๋ก ๊ฒ์ฌํด์ค๋ค.