알고리즘/Python
[python] 프로그래머스 - N-Queens
제주도랏맨
2022. 6. 1. 02:29
출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12952
코딩테스트 연습 - N-Queen
가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은
programmers.co.kr
더보기
풀이
stack = [] #퀸의 좌표를 넣는 공간.
answer = 0 #방법의 수
def check(location):
mx, my = location
for queen in stack:
x, y = queen
if mx == x or my == y:
return False
if abs((mx - x)/(my-y)) == 1:
return False
return True
def solution(n, current = 0):#현재 라인을 받는다.
global answer
if current == n:
answer += 1
return
for col in range(n):
if check([current, col]):
stack.append([current, col])
solution(n, current+1)
stack.pop()
return answer
그래도 풀어본 문제라고 굉장히 빨리 풀었다.
solution의 형태를 바꿔도 되는구나. 신기하다.
시간 복잡도
-
알게 된 점
-
고찰
-