일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 10분
- 미드시청
- 리얼 클래스
- 파비최
- English
- 개발자
- 사이드
- 월간
- 매일
- Writing
- 링피트
- 스탭퍼
- 화상영어
- 읽기
- 3줄정리
- 쓰릴오브파이트
- 영어원서읽기
- 프로젝트
- realclass
- 영어공부
- 괜찮음
- Daily Challenge
- leetcode
- 뭐든
- 30분
- FIT XR
- 잡생각
- 운동
- Problem Solving
- 만화도
Archives
- Today
- Total
파비의 매일매일 공부기록
Today's Challenge 본문
https://leetcode.com/problems/n-queens/
N-Queens - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
N-Queens 문제는 좀 어려운 듯..
다른 사람의 해설을 보고 풀긴 했는데, 1차원 형태로 바꿔서 푸는 듯..?
오늘은 시간이 없어서 소스 풀이도 제대로 못했네 ㅠ
class Solution:
def solveNQueens(self, n: int) -> List[List[str]]:
column = [0] * n
diag1, diag2 = [0] * (2 * n - 1), [0] * (2 * n - 1)
res = []
def boardState():
rows = []
for y in column:
rows.append(((y-1) * '.') + 'Q' + ((n - y) * '.'))
return rows
def search(y):
if y == n:
res.append(boardState())
return
for x in range(n):
if column[x] or diag1[x+y] or diag2[x-y+n-1]:
continue
column[x] = diag1[x+y] = diag2[x-y+n-1] = y+1
search(y+1)
column[x] = diag1[x+y] = diag2[x-y+n-1] = 0
search(0)
return res
반응형
'Problem Solving > LeetCode' 카테고리의 다른 글
Today's Challenge (0) | 2022.06.06 |
---|---|
Today's Challenge (0) | 2022.06.05 |
Today's Challenge (0) | 2022.06.03 |
Today's Challenge (0) | 2022.06.02 |
Today's Challenge (0) | 2022.06.01 |
Comments