Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155) N
    • ๐Ÿ’ปBackend (1) N
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ฝ”ํ…Œ
  • ์ •๋ ฌ
  • ํ† ์ตRC
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • BFS
  • ๊ตฌํ˜„
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ์™„์ „ํƒ์ƒ‰
  • ๋ฆฌ์ŠคํŠธ
  • ์˜ค๋ธ”์™„
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • sort
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • UNION ALL
  • ํ† ์ต์‹œํ—˜
  • Python
  • ํ† ์ต๊ธฐ์ถœ
  • ๋‚ด์žฅํ•จ์ˆ˜
  • ๊ทธ๋ฆฌ๋””
  • ๋ฐฑ์ค€
  • ํ•ด์ปค์Šคํ† ์ต
  • mysql
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ํ† ์ต์ ์ˆ˜
  • ํ† ์ต๊ณต๋ถ€
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ํ† ์ต๋…ํ•™
  • BaekJoon
  • greedy algorithm
  • Union

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

[SWEA] ํŒŒ์ด์ฌ 2806. N-Queen | ๋ฐฑํŠธ๋ž˜ํ‚น(Backtracking)
๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉSWExpertAcademy

[SWEA] ํŒŒ์ด์ฌ 2806. N-Queen | ๋ฐฑํŠธ๋ž˜ํ‚น(Backtracking)

2023. 4. 21. 19:57

 

~๋ชฉ์ฐจ~

๋ฌธ์ œ

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

์ž‘์„ฑ ์ฝ”๋“œ


 

๋ฌธ์ œ

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GKs06AU0DFAXB 

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

- ์ „ํ˜•์ ์ธ Backtracking ๋ฌธ์ œ (DFS์—์„œ ๊ฐ€์ง€์น˜๊ธฐ)

- ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด์„œ ๊นŠ์ด๊ฐ€ ๊ณง ๋ณด๋“œ์˜ ํ–‰์ด๊ณ  ํ•ด๋‹น ํ–‰์—์„œ ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ•œ ์—ด์„ ์ฐพ๋Š” ๊ฒƒ์ด๋‹ค.

 

- ์œ„ ๊ทธ๋ฆผ์€ 3 x 3 ๋ณด๋“œ ์ผ ๋•Œ์˜ ํƒ์ƒ‰์„ ์‹œ๊ฐํ™” ํ•œ ๋ชจ์Šต์ด๋‹ค.

- X ํ‘œ์‹œ๋Š” promisiong์— ๊ฑธ๋ ค์„œ ๋” ์ด์ƒ ๊นŠ์ด ํƒ์ƒ‰ํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ„๋‹ค.

- DFS(3) ์ด๋ผ๋ฉด ๋ชจ๋“  ํ–‰์˜ ํ€ธ ์ž๋ฆฌ๊ฐ€ ์•Œ๋งž์€ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ ์นด์šดํŠธํ•ด์ค€๋‹ค. 

 

 

- ๊ฐ™์€ ์—ด์— ์žˆ๊ฑฐ๋‚˜ ๊ฐ™์€ ๋Œ€๊ฐ์„ ์— ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๋”์ด์ƒ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.

   ใ„ด ๋‘ ์ ์ด ๊ฐ๊ฐ (x1, y1), (x2, y2) ์ด๊ณ ,  | x1 - x2 | = | y1 - y2 |  ์ผ ๋•Œ ๊ฐ™์€ ๋Œ€๊ฐ์„ ์— ์žˆ๋‹ค (same diagonal)

 

 

์ž‘์„ฑ ์ฝ”๋“œ

 

def promising(row):
    for i in range(row):
        if column[row] == column[i] or row - i == abs(column[row] - column[i]):
            # ํ€ธ์ด ๊ฐ™์€ ๋Œ€๊ฐ์„  ๋˜๋Š” ์—ด์— ์กด์žฌํ•œ๋‹ค๋ฉด ํƒ์ƒ‰ ์ค‘์ง€
            return False
    return True


def dfs(row):
    global result
    if row == n:  # n ๋ฒˆ์งธ ํ–‰ ํ€ธ๊นŒ์ง€ ๊ฒฐ์ • ๋๋‹ค๋ฉด
        result += 1
    else:
        for col in range(n):  # row ํ–‰์˜ ์–ด๋А ์—ด
            column[row] = col  # ํ€ธ ๋ฐฐ์น˜
            if promising(row):  # (Backtracking) ๋” ํƒ์ƒ‰ํ• ์ง€ ๊ฒฐ์ •
                dfs(row+1)


for test in range(1, int(input())+1):
    n = int(input())  # n * n ๋ณด๋“œ
    column = [-1]*n  # i๋ฒˆ์งธ ํ–‰์— ์œ„์น˜ํ•œ ํ€ธ์˜ ์—ด ์œ„์น˜
    result = 0

    dfs(0)

    print("#{} {}".format(test, result))

 

 

 

๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์ข‹์•„์š” ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”๐Ÿ’š

 

 

'๐Ÿ“๋ฌธ์ œ ํ’€์ด > ๐ŸงฉSWExpertAcademy' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[SWEA] ํŒŒ์ด์ฌ 220. Magnetic | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜  (0) 2023.04.25
[SWEA] ํŒŒ์ด์ฌ 2817. ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ | BFS  (0) 2023.04.24
[SWEA] ํŒŒ์ด์ฌ 5215. ํ–„๋ฒ„๊ฑฐ ๋‹ค์ด์–ดํŠธ | DFS  (2) 2023.04.20
[SWEA] ํŒŒ์ด์ฌ 1209. Sum  (0) 2023.04.20
[SWEA] ํŒŒ์ด์ฌ 2805. ๋†์ž‘๋ฌผ ์ˆ˜ํ™•ํ•˜๊ธฐ  (0) 2023.04.19
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉSWExpertAcademy' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [SWEA] ํŒŒ์ด์ฌ 220. Magnetic | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • [SWEA] ํŒŒ์ด์ฌ 2817. ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ | BFS
    • [SWEA] ํŒŒ์ด์ฌ 5215. ํ–„๋ฒ„๊ฑฐ ๋‹ค์ด์–ดํŠธ | DFS
    • [SWEA] ํŒŒ์ด์ฌ 1209. Sum
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”