본문 바로가기

Algorithm350

[BOJ]2529번: 부등호 (c++) https://www.acmicpc.net/problem/2529 2529번: 부등호여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력�www.acmicpc.net 방법 1: 정렬을 이용하여 dfs를 2번 시행하기 (20200601 추가)#include #include #include using namespace std;string numbers = "9876543210";// 두 문자의 크기를 c를 기준으로 판단하여 bool 반환bool inline check(char ineuql, char A, char B){ return (ineuql == ' B);}.. 2020. 5. 21.
[BOJ]15661번: 링크와 스타트 (c++) https://www.acmicpc.net/problem/15661 15661번: 링크와 스타트첫째 줄에 N(4 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 Sij 이다. Sii는 항상 0이고, 나머지 Sij는 1보다 크거나 같고, 100www.acmicpc.net #include #include #include using namespace std;const int MAX = 20;int S[MAX][MAX];int N;int min_dif = 2000;// 팀의 합산 점수 구하기int get_point(vector &team){ int sum = 0; for (int i : team) { for (int j : t.. 2020. 5. 21.
[BOJ]14889번: 스타트와 링크 (c++) https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다.www.acmicpc.net 방법 1: 백트랙킹#include #include #include using namespace std;const int MAX = 20;int min_dif = 1000;int S[MAX][MAX];int N;// 점수 차이 구하기int get_point_dif(vector& team_s, vector& team_l){ int sum_s = 0; int sum_l = 0; for (int i = 0; i & team_s.. 2020. 5. 21.
[BOJ]14501번: 퇴사 (c++) https://www.acmicpc.net/problem/14501 14501번: 퇴사첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.www.acmicpc.net 방법 1 : 백트랙킹#include #include using namespace std;int max_sum;void dfs(vector &dates, vector &money, int sum, int index){ // 일의 종료 시점이 주어진 날짜보다 클때 if (index > dates.size()) { return; } // 주어진 날짜에 일을 종료할 수 있을 때 else if (index == dates.size()) { if (max_sum > N; vector dates(N); vector money(N); for (in.. 2020. 5. 20.