Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 협업
- 파이썬
- OS
- 기초100제
- js to ts
- codeup
- Spring
- Operating System
- error
- CPU 스케줄링
- 분할메모리할당
- 정렬
- web
- 리덕스장바구니
- Java
- 프로그래머스
- 토이프로젝트
- memory
- react-redux
- 백준
- 공부
- 코드업
- react
- 자료구조
- Redux
- 스프링
- 일상
- C++
- 알고리즘
- 타입스크립트
Archives
- Today
- Total
감자튀김 공장🍟
[백준/9663] N-Queen (with 파이썬) 본문
반응형
✔ 문제
✔ 풀이
import sys
input = sys.stdin.readline
n = int(input())
graph = [0] * n
count = 0
def is_promising(x):
for i in range(x):
if graph[x] == graph[i] or abs(graph[x] - graph[i]) == x - i:
return False
return True
def queen(x):
global count
if x == n:
count += 1
return
else:
for i in range(n):
graph[x] = i
if is_promising(x):
queen(x+1)
queen(0)
print(count)
✔ 설명
#Tip
1. 굳이 2차원 배열을 쓸 필요가 없다. (1차원 배열의 인덱스 값을 사용)
2. graph[i] = j 는 'queen을 [i, j]에 놓는다'고 해석할 수 있다.
3. 퀸을 놓지 못하는 경우의 수를 따진다.
3-1. 같은 열에 다른 퀸이 있는 경우
3-2. 양 대각선에 다른 퀸이 있는 경우
✔ 후기
N-queen이 백트래킹 대표 문제라고 한다.
두 번 풀어봤었는데도 날려 풀었는지 매번 새롭다 (ᗒᗣᗕ)՞
다시 복습하면서 진짜 N-queen 문제 정복할테다
참고 자료:
https://chanhuiseok.github.io/posts/baek-1/
https://seongonion.tistory.com/103
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[백준/14888] 연산자 끼워넣기 (with 파이썬) (0) | 2023.01.04 |
---|---|
[백준/2580] 스도쿠 (with 파이썬) (0) | 2023.01.03 |
[백준/15652] N과 M (4) (with 파이썬) (0) | 2022.12.30 |
[백준/15651] N과 M (3) (with 파이썬) (0) | 2022.12.29 |
[백준/15650] N과 M (2) (with 파이썬) (0) | 2022.12.28 |
Comments