[백준/파이썬] 9663번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 9663번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
백준 9663번 문제를 풀이합니다.
코드
`python n = int(input()) answer = 0
def bt(n, i, placable): print(‘================’) print(i) for row in placable: print(row) print(‘================’) if i >= n*n: return 1
tmp = []
if placable[i // n][i % n]:
global answer
answer += 1
for row in placable: tmp.append(row.copy())
for j in range(n): tmp[i // n][j] = tmp[j][i % n] = False
j = 1
while 0 <= i // n - j < n and 0 <= i % n - j < n:
tmp[i // n - j][i % n - j] = False
j += 1
j = 1
while 0 <= i // n + j < n and 0 <= i % n - j < n:
tmp[i // n + j][i % n - j] = False
j += 1
j = 1
while 0 <= i // n - j < n and 0 <= i % n + j < n:
tmp[i // n - j][i % n + j] = False
j += 1
j = 1
while 0 <= i // n + j < n and 0 <= i % n + j < n:
tmp[i // n + j][i % n + j] = False
j += 1
i += 1
while i < n*n and not placable[i // n][i % n]: i += 1
if not tmp: bt(n, i, tmp)
bt(n, i, placable)
bt(n, 0, [[True] * n for _ in range(n)]) print(answer)
```
설명
저장소의 기존 제출 코드를 기준으로 정리한 풀이입니다.
댓글남기기