[ 2023-02-27 ๐Ÿ™€ TIL ]

Burkeyยท2023๋…„ 2์›” 27์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
44/157

๋ฐฑ์ค€ 9663๋ฒˆ

n = int(input())
queen_li = [0] * n
count = 0

def back(x):
    for i in range(x):
        if queen_li[x] == queen_li[i] or abs(queen_li[x] - queen_li[i]) == abs(x - i):
            # ํ€ธ์˜ ์ด๋™ ๊ทœ์น™ -> ๊ฐ€๋กœ, ์„ธ๋กœ, ๋Œ€๊ฐ์„  ์— ๋งž๋Š” ์œ„์น˜์— ๋‹ค์Œ ํ€ธ์„ ๋„ฃ์„ ์ˆ˜ ์—†๋Š” ์กฐ๊ฑด์œผ๋กœ ํŒ๋‹จ
            return False

    return True


'''
n = 3 ๐Ÿ‘‡
	 [0,0][0,1][0,2]
	 [1,0][1,1][1,2]
	 [2,0][2,1][2,2]
'''

def queen(x=0):
    global count
    if x == n:
        count += 1
        return

    for y in range(n):
        queen_li[x] = y # [x, y]์— queen ์œ„์น˜ [0,0]->[0,1]->[0,2]

        if back(x): # 
            queen(x+1) # ๋‹ค์Œ ์—ด์— queen ๋„—์„ ์ˆ˜ ์žˆ๋Š” ์ง€ ํ™•์ธ


queen()
print(count)

๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ์˜€์ง€๋งŒ ๊ฒฐ๊ตญ ๊ฒ€์ƒ‰ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋ฐฑํŠธ๋ž˜ํ‚น์— ๊ด€ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋”์šฑ ํ’€์–ด๋ณด๋ฉด์„œ ํ•™์Šต์„ ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€