[LeetCode][Python3] 52. N-Queens II
2019. 8. 23. 01:21 |
프로그래밍/LeetCode
Problem :
https://leetcode.com/problems/n-queens-ii/
My Solution :
class Solution:
def totalNQueens(self, n):
def dfs(r):
if r == n:
self.ans += 1
return
for c in column:
if r+c not in up_right and r-c not in up_left:
column.remove(c)
up_right.add(r+c)
up_left.add(r-c)
dfs(r+1)
column.add(c)
up_right.remove(r+c)
up_left.remove(r-c)
self.ans = 0
up_left, up_right, column = set(), set(), set(range(n))
dfs(0)
return self.ans
Comment :
일단 체스의 퀸이 어떻게 움직일 수 있는지 알아야 한다. 가로, 세로, 대각선 모두 움직일 수 있다.
출처 : https://en.wikipedia.org/wiki/Queen_(chess)
좌상-우하 대각선은 x, y 좌표 값의 차가 같은 점들이고
우상-좌하 대각선은 x, y 좌표 값의 합이 같은 점들이다.
'프로그래밍 > LeetCode' 카테고리의 다른 글
[LeetCode][Python3] 174. Dungeon Game (0) | 2019.08.28 |
---|---|
[LeetCode][Python3] 77. Combinations (0) | 2019.08.25 |
[LeetCode][Python3] 39. Combination Sum (0) | 2019.08.23 |
[LeetCode][Python3] 216. Combination Sum III (0) | 2019.08.23 |
[LeetCode][Python3] 526. Beautiful Arrangement (0) | 2019.08.21 |
[LeetCode][Python3] 784. Letter Case Permutation (0) | 2019.08.20 |
[LeetCode][Python3] 980. Unique Paths III (0) | 2019.08.20 |
[LeetCode][Python3] 47. Permutations II (0) | 2019.08.18 |
최근에 달린 댓글 최근에 달린 댓글