Programmers_연습문제 N-Queen(python)
프로그래머스 -N-Queen 타일링 문제 입니다.
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12952
2. 분류 및 난이도
Programmers 문제입니다.
연습문제 문제입니다.
Level 3난이도의 문제입니다.
3. 생각한 것들(문제 접근 방법)
- 유명한 문제입니다.
- leetcode에서는 Hard로 분류되어있고, 효율성까지 따지는 문제라 Level3 문제는 아닌 것 같은데..
4. 접근 방법을 적용한 코드
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
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)):
find = col[j]
res[size].append(1)
else:
for j in range(0,n):
col[i+1] = j
queens(n,i+1,col,res)
def solution(n):
col = n *[0]
res = []
queens(n,-1,col,res)
return len(res)
5. 결과
필요시. c++ 짜드리겠습니다. 설명이 필요시 댓글달아주세요.
This post is licensed under CC BY 4.0 by the author.