728x90

์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_4(8ํ€ธ ๋ฌธ์ œ)

05-4 8ํ€ธ ๋ฌธ์ œ 8ํ€ธ ๋ฌธ์ œ ์•Œ์•„๋ณด๊ธฐ 8ํ€ธ ๋ฌธ์ œ(8-Queen prooblem)๋Š” ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๋ช…ํ•  ๋•Œ ์ž์ฃผ ๋‚˜์˜ค๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. 8๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ ๊ณต๊ฒฉํ•˜์—ฌ ์žก์„ ์ˆ˜ ์—†๋„๋ก 8 x 8 ์ฒด์ŠคํŒ์— ๋ฐฐ์น˜ํ•˜์„ธ์š”. ๋ถ„๊ธฐ ์ž‘์—…์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ ์‹ค์Šต 5-7 ๊ฐ ์—ด์— ํ€ธ์„ 1๊ฐœ ๋ฐฐ์น˜ํ•˜๋Š” ์กฐํ•ฉ์„ ์žฌ๊ท€์ ์œผ๋กœ ๋‚˜์—ดํ•˜๊ธฐ # ๊ฐ ์—ด์— ํ€ธ์„ 1๊ฐœ ๋ฐฐ์น˜ํ•˜๋Š” ์กฐํ•ฉ์„ ์žฌ๊ท€์ ์œผ๋กœ ๋‚˜์—ดํ•˜๊ธฐ pos = [0] * 8 # ๊ฐ ์—ด์—์„œ ํ€ธ์˜ ์œ„์น˜๋ฅผ ์ถœ๋ ฅ def put() -> None: """๊ฐ ์—ด์— ๋ฐฐ์น˜ํ•œ ํ€ธ์˜ ์œ„์น˜๋ฅผ ์ถœ๋ ฅ""" for i in range(8): print(f'{pos[i]:2}',end='') print() def set(i: int) -> None: """i์—ด์— ํ€ธ์„ ๋ฐฐ์น˜""" for j in range(8): po..

Code/Algorithm 2022.12.16

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_2

05-2 ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„ ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ 2๊ฐ€์ง€ ๋ถ„์„ ๋ฐฉ๋ฒ• ์‹ค์Šต 5-3 ์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ # ์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ # ์ˆœ์ˆ˜ํ•œ(genuinely) ์žฌ์‰ฌ -> ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜ def recur(n: int) -> int: """์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ recur์˜ ๊ตฌํ˜„""" if n > 0: recur(n - 1) print(n) recur(n - 2) x = int(input('์ •์ˆซ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”.: ')) recur(x) ์ •์ˆซ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”.: 4 1 2 3 1 4 1 2 recur() ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์•ˆ์—์„œ ์žฌ๊ท€ ํ˜ธ์ถœ์„ 2๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ˆœ์ˆ˜ํ•œ(genuinely) ์žฌ๊ท€๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์‹ค์ œ ๋™์ž‘์€ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ ๋งค๊ฐœ๋ณ€์ˆ˜ n์—..

Code/Algorithm 2022.12.09
728x90