문제) 백준 - 동적 계획법 - 최고의 팀 만들기
https://www.acmicpc.net/problem/1633
1633번: 최고의 팀 만들기
꿍 협회는 매년 세계체스대회에 나갈 팀을 만들고 있다. 팀은 흑으로 플레이하는 15명과 백으로 플레이하는 15명, 총 30명으로 이루어진다. 꿍 협회는 가능한 최고의 팀을 만들려고 하는데 각 플
www.acmicpc.net
동적 계획법을 통해 해결했습니다. solve(int idx, int b_cnt, int w_cnt) 함수는 idx번째 사람까지 고른 흑(b_cnt)과 백(w_cnt)을 골랐을 때, 능력치의 최댓값입니다. solve 함수 내에서 idx번째 사람을 뛰어넘거나 흑 플레이어로 추가하거나 백 플렉이어로 추가합니다.
C++ 소스코드)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int solve(int idx, int b_cnt, int w_cnt){ | |
if(idx == N) return 0; | |
if(b_cnt == 15 && w_cnt == 15) return 0; | |
int &ret = cache[idx][b_cnt][w_cnt]; | |
if(ret != -1) return ret; | |
// Skip | |
ret = max(ret, solve(idx + 1, b_cnt, w_cnt)); | |
// White | |
if(w_cnt < 15) | |
ret = max(ret, solve(idx + 1, b_cnt, w_cnt + 1) + arr[idx][0]); | |
// Black | |
if(b_cnt < 15) | |
ret = max(ret, solve(idx + 1, b_cnt + 1, w_cnt) + arr[idx][1]); | |
return ret; | |
} |
Full Code)
GitHub - Chocochip101/BOJ_Solution: BOJ Solutions
BOJ Solutions. Contribute to Chocochip101/BOJ_Solution development by creating an account on GitHub.
github.com
반응형
'PS(Problem Solving) > 백준_BOJ' 카테고리의 다른 글
[백준] 21939번 - 문제 추천 시스템 Version 1 (C++) 문제 및 풀이 (0) | 2022.02.14 |
---|---|
[백준] 1145번 - 적어도 대부분의 배수 (C++) 문제 및 풀이 (0) | 2022.02.14 |
[백준] 4803번 - 트리 (C++) 문제 및 풀이 (0) | 2022.02.12 |
[백준] 3184번 - 양 (C++) 문제 및 풀이 (0) | 2022.02.12 |
[백준] 1032번 - 명령 프롬프트 (C++) 문제 및 풀이 (0) | 2022.02.12 |
댓글