n = int(input())
cnt = 0
def select(x, l, y_used):
global cnt
if len(l) == n:
cnt += 1
return
for ny in range(n):
if ny not in y_used:
flag = 0
for (u, v) in l:
if abs(v-ny) == abs(u-x-1):
flag = 1
if flag == 0:
# 모든 x와 y가 한번씩 등장
select(x+1, l+[(x+1, ny)], y_used+[ny])
for y in range(n):
select(0, [(0, y)], [y])
print(cnt)
모든 방향, 모든 좌표 탐색 -> 대각선 방향만 탐색 -> 절댓값으로 계산 으로 바꿈