본문 바로가기

Algorithm/프로그래머스139

[프로그래머스]연습문제 : N-Queen (level 3) (c++) https://programmers.co.kr/learn/courses/30/lessons/12952 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr 백트랙킹 #include #include using namespace std; int cnt; void n_queen(vector &vrtc, vector &dgnl_1, vector& dgnl_2, int n, int y) { // n퀸의 위치를 완성했을 때 if (y == n) { ++cnt; return; } for (int x = 0; x .. 2020. 7. 10.
[프로그래머스]연습문제 : 최고의 집합 (level 3) (c++) https://programmers.co.kr/learn/courses/30/lessons/12938 코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 집합으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만족 programmers.co.kr #include #include using namespace std; vector solution(int n, int s) { // n개의 자연수로 s를 만들 수 없는 경우 if (n > s) { return { -1 }; } // 초기에 n개의 자연수는 각각 (s / n)의 값을 가짐 int qe = s / n; vector answer.. 2020. 7. 10.
[프로그래머스]연습문제 : 줄 서는 방법 (level 3) (c++) https://programmers.co.kr/learn/courses/30/lessons/12936 코딩테스트 연습 - 줄 서는 방법 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람 programmers.co.kr #include #include using namespace std; long long make_factorial(vector& fact, long long num) { if (num 0) { return fact[num]; } return fact[num] = make_factoria.. 2020. 7. 10.
[프로그래머스]2019 카카오 개발자 겨울 인턴십 : 불량 사용자 (level 3)(c++) https://programmers.co.kr/learn/courses/30/lessons/64064?language=cpp 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 무지는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 �� programmers.co.kr dfs + 백트랙킹 #include #include #include using namespace std; set com_set; void dfs(vector &cands, set &pick_ban, int depth) { // 종료조건 : depth가 제재 아이디목록 길이일 때 if (depth == cands.size()) { /* 제.. 2020. 7. 9.