leetcode(리트코드)5월29일 challenge52-N-Queens II(python)
leetcode(리트코드)5월29일 challenge52-N-Queens II(python)
leetcode May 29일 - N-Queens II 문제입니다.
1. 문제
https://leetcode.com/problems/n-queens-ii/
2. Input , Output
3. 분류 및 난이도
Hard 난이도입니다.
5월 29일자 챌린지 문제입니다.
4. 문제 해석
- 얼마 전에 푼 N-Queen 문제의 2번째 버전입니다.
- 첫 번째 문제는 리스트를 반환했지만, 이번 문제는 그 리스트의 길이를 반환하면 되는 문제라 I을 풀었으면 이번 문제는 어렵지 않게 해결할 수 있습니다.
5. code
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Solution:
def totalNQueens(self, n: int) -> int:
def promising(i,col):
k = 0
switch = True
while k < i and switch == True :
if col[i] == col[k] or abs(col[i] - col[k]) == i -k :
switch = False
k+=1
return switch
def queens(n,i,col,res):
if promising(i,col) :
if i == n-1 :
size = len(res)
res.append([])
for j in range(len(col)):
resstr = ""
find = col[j]
for k in range(len(col)):
if k ==find :
resstr+="Q"
else :
resstr+="."
res+=1
else:
for j in range(0,n):
col[i+1] = j
queens(n,i+1,col,res)
col = n *[0]
res = []
queens(n,-1,col,res)
return res
6. 결과 및 후기, 개선점
필요시 c++로 풀어드립니다.
This post is licensed under CC BY 4.0 by the author.