Open hojongs opened 1 year ago
10초 제한에 6.5초 걸리는 알고리즘이다. 어떤 알고리즘이 있을까?
a = (0, 1, 0, 0, 2, 10, 4, 40, 92, 352, 724, 2680, 14200, 73712, 365596)
print(a[int(input())])
1등(96ms) 코드. 출력 결과는 14가지이고 상수이다.
https://velog.io/@damiano1027/BOJ-9663%EB%B2%88-N-Queen
하위 배열에 +1 할 필요가 없다. 퀸 배치 시마다 동일 행/열/대각선에 퀸이 있는지 검사하면 된다.
이 또한 보드를 위쪽으로 순회하도록 구현할 수도 있지만(O(N)이지만 3번씩 수행한다) 이전 퀸들의 위치들을 저장해두고 동일 행/열/대각선인지 검사하면 된다 (O(N))
Problem link
https://www.acmicpc.net/problem/9663
Problem abstraction
Design(Plan) algorithm
Algorithm idea
시뮬레이션 (백트래킹, DFS)
Pseudo-code
아래 주석 참고
Validate algorithm
Impl
Self-feedback
구조적 접근: 문제를 추상화하여 구조적으로 접근했는가?
O
사고력: 알고리즘을 완전히 이해했는가? (충분한 사고력을 가졌는가?)
구현력: 알고리즘을 신속, 정확하게 구현했는가?
O