[프로그래머스 Level 2, C++] N-Queen

2022. 7. 13. 19:06·정리 전 게시글/공부 관련

문제 : N-Queen


풀이 방법

솔직히 잘 모르겠다

 

문제의 질문하기에서 2차원으로 하지말고 1차원으로 해야 효율성에서 통과할 수 있다고 하고

기존 체스와 새로운 체스의 각행과 열의 차의 절대값이 같으면 기울기가 같으니

대각선 체크를 할 수 있다고 하는데 도통 뭔소린지 모르겠더라

ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

https://cryptosalamander.tistory.com/58

 

[백준 / BOJ] - 9663번 N-Queen C++ 풀이

백준 - 단계별로 풀어보기 [9663] https://www.acmicpc.net/problem/9663 문제 풀이 N-Queen 문제는 백트래킹의 가장 대표적인 예제로서, 퀸의 특성상 체스판 한 행당 한 개의 퀸만 존재할 수 있다는 것을 전제..

cryptosalamander.tistory.com

그래서 그냥 다른사람 푼거 코드를 보면서 이해나 하려고 보면서 풀었다

이 사람꺼 보고 했는데 아래 영상 보고 코드를 다시 보니까 어떻게 돌아가는지는 알겠는데

엄청 어렵네;;;

 

 


소스 코드

#include <string>
#include <vector>
#include <cmath>
using namespace std;

void dfs(vector<int>& chess, int& answer, int col) {
    if(chess.size() == col) {
        answer++;
    }
    else {
        for(int i=0; i<chess.size(); i++) {
            bool flag = true;
            chess[col] = i;
            
            for(int u=0; u<col; u++) {
                if(chess[col] == chess[u] || abs(chess[col] - chess[u]) == abs(col - u)) {
                    flag = false;
                    break;
                }
            }
            if(flag) dfs(chess, answer, col+1);
        }
    }
}

int solution(int n) {
    int answer = 0;
    vector<int> chess(n, 0);
    dfs(chess, answer, 0);
    return answer;
}

 

저작자표시 (새창열림)

'정리 전 게시글 > 공부 관련' 카테고리의 다른 글

[프로그래머스 Level 2, C++] 다음 큰 숫자  (0) 2022.07.26
[프로그래머스 Level 2, C++] 최솟값 만들기  (0) 2022.07.14
[프로그래머스 Level 1, C++] 신고 결과 받기  (0) 2022.07.09
[프로그래머스 Level 1, C++] 키패드 누르기  (0) 2022.07.08
[프로그래머스 Level 1, C++] 크레인 인형뽑기 게임  (0) 2022.07.08
'정리 전 게시글/공부 관련' 카테고리의 다른 글
  • [프로그래머스 Level 2, C++] 다음 큰 숫자
  • [프로그래머스 Level 2, C++] 최솟값 만들기
  • [프로그래머스 Level 1, C++] 신고 결과 받기
  • [프로그래머스 Level 1, C++] 키패드 누르기
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (277)
      • f1tenth (2)
      • 개발 관련 아무거나 (1)
      • 정리 전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    C언어
    마크
    빅데이터공모전
    마인크래프트스크립트
    안드로이드
    파이어베이스
    마크스크립트
    콜라츠추측
    티스토리반응형2스킨편집
    스크롤바CSS
    컨텍스트스위칭
    일본규슈공업대학교
    백준
    반복하지않는수
    이것이자바다
    c언어초보
    자바
    티스토리HTML
    C언어강좌
    캡스톤디자인
    티스토리스킨편집
    파이썬
    마인크래프트강화스크립트
    프로그래머스PCCE
    프로그래머스
    공개SW개발자대회
    이것이자바다연습문제
    C++강좌
    이것이자바다확인문제
    마인크래프트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
[프로그래머스 Level 2, C++] N-Queen
상단으로

티스토리툴바