[SWEA|파이썬] 2806. N-Queen (D3)

2023. 5. 7. 22:27·Problem Solving/SWEA
반응형
문제

https://tinyurl.com/2zrd5mef

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

🐍파이썬
T = int(input())
for test_case in range(1, T + 1):
    n = int(input())
    board = [0] * n
    answer = 0

    def dfs(x):
        global answer
        if x == n:  #n행의 depth까지 들어갔다면
            answer += 1     #퀸 놓는 경우의 수+1
            return
        for i in range(n):  #n행 반복
            board[x] = i    #x행, i열에 퀸 놓기
            for j in range(x):
            	#해당 위치에 퀸을 놓을 수 있는지 없는지 확인
                #동일한 열에 있거나 or 대각선상에 있을 때 퀸 놓기 불가
                if board[x] == board[j] or abs(board[x]-board[j]) == abs(x-j):
                    break
            #break문 실행이 되지 않았을 때 -> 퀸을 놓을 수 있다.
            else:
                dfs(x+1)    #다음 재귀 실행해서 새로운 퀸 놓기
    dfs(0)
    print("#{} {}".format(test_case, answer))

 

N-Queen은 대표적인 백트래킹 문제이다.

아직 이해가지 않는 부분은 더 공부하고 반복해서 익히도록 하자.

 

참고한 블로그

https://seongonion.tistory.com/103

 

[백준] 9663번 N-Queen - 파이썬(Python)

문제 (링크) https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로

seongonion.tistory.com

👆 자세한 코드 설명을 확인할 수 있다.

 

https://jehwanyoo.net/2022/01/26/n-queen-%EB%AC%B8%EC%A0%9C-%EB%B0%B1%ED%8A%B8%EB%9E%98%ED%82%B9/

 

N-Queen 문제 (백트래킹)

문제https://programmers.co.kr/learn/courses/30/lessons/12952 알고리즘 유도체스판은 2차원 배열로 되어있다. 퀸들끼리 서로 간섭하지 않고 총 N개의 말을 체스판에 놓아야한다. 1줄부터 N줄까지 차례대로 퀸

jehwanyoo.net

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Problem Solving > SWEA' 카테고리의 다른 글

[SWEA|파이썬] 1209. [S/W 문제해결 기본] 2일차 - Sum (D3)  (0) 2023.05.09
[SWEA|파이썬] 1215. [S/W 문제해결 기본] 3일차 - 회문1 (D3)  (0) 2023.05.08
[SWEA|파이썬] 2805. 농작물 수확하기 (D3)  (0) 2023.05.08
[SWEA|파이썬] 1208. [S/W 문제해결 기본] 1일차 - Flatten (D3)  (0) 2023.05.07
[SWEA|파이썬] 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (D3)  (0) 2023.05.07
[SWEA|파이썬] 1206. [S/W 문제해결 기본] 1일차 - View (D3)  (0) 2023.05.06
'Problem Solving/SWEA' 카테고리의 다른 글
  • [SWEA|파이썬] 1215. [S/W 문제해결 기본] 3일차 - 회문1 (D3)
  • [SWEA|파이썬] 2805. 농작물 수확하기 (D3)
  • [SWEA|파이썬] 1208. [S/W 문제해결 기본] 1일차 - Flatten (D3)
  • [SWEA|파이썬] 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (D3)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 (505)
      • 프로그래밍 (41)
        • Programming (1)
        • C | C++ (6)
        • Java (28)
        • Python (5)
      • 웹 프로그래밍 (108)
        • HTML | CSS (5)
        • JavaScript | TypeScript (41)
        • React (25)
        • Vue.js (0)
        • Next.js (18)
        • Spring & Spring Boot (13)
        • JSP & Servlet (1)
        • DB (4)
      • 웹 프로젝트 (77)
        • 웹 프로젝트 (22)
        • 🥨스낵몰 (3)
        • 👨‍👨‍👧‍👧소셜 가계부 (26)
        • 🌜꿈 일기장 (11)
        • 🔮포트폴리오 사이트 (11)
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램 (0)
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼 (0)
        • 😺Just Meow It: 조언 사이트 (2)
        • 📕Workly: 교대근무 다이어리 (1)
      • 앱 프로그래밍 (26)
        • Flutter (24)
        • Kotlin (2)
      • Problem Solving (166)
        • 백준 (52)
        • 프로그래머스 (79)
        • SWEA (29)
      • Computer Science (40)
        • 알고리즘 (14)
        • 컴퓨터 네트워크 (18)
        • 이산수학 (8)
      • Developer (47)
        • 후기 (4)
        • 자료정리 (4)
        • 취업 | 취준 (9)
        • SSAFY (1)
        • 웹개발 교육 프로그램 (9)
        • TIL (20)
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    구현
    공식문서
    자바
    React
    클론 프로젝트
    타입스크립트
    강의내용정리
    bfs
    SWEA
    뉴렉처
    spring boot
    ZeroCho
    웹사이트
    플러터
    파이썬
    컴퓨터네트워크
    백준
    블로그 제작
    프로젝트
    프로그래머스
    AWS
    리액트
    Jiraynor Programming
    Til
    mysql
    포트폴리오
    알고리즘
    Next.js
    d3
    자바스크립트
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[SWEA|파이썬] 2806. N-Queen (D3)
상단으로

티스토리툴바