Algorithm/C++ (111) 썸네일형 리스트형 [C++] 11478 : 서로 다른 부분 문자열의 개수 https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net #include #include using namespace std; set u; int main(void) { string S; cin >> S; for (int i = 0; i < S.size(); i++) { string str = ""; //빈문자열 for (int j = i; j < S.size(); j++) { str += S[j]; //원소 생성 cout [C++] 1106 : 호텔 https://www.acmicpc.net/problem/1106 1106번: 호텔 첫째 줄에 C와 형택이가 홍보할 수 있는 도시의 개수 N이 주어진다. C는 1,000보다 작거나 같은 자연수이고, N은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각 도시에서 홍보할 때 www.acmicpc.net #include #include using namespace std; #define MAX 111111 int C, N; int a, b; //a:홍보할 때 드는 비용. b:그 비용으로 얻을 수 있는 고객의 수 int d[MAX]; //DP table int main(void) { cin >> C >> N; int i, j; for (i = 1; i > a >> b; for (j = a; j [C++] 5582 : 공통 부분 문자열 https://www.acmicpc.net/problem/5582 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net #include using namespace std; int d[4444][4444]; char s1[4444], s2[4444]; int ans; int main(void) { cin >> s1 + 1 >> s2 + 1; int i, j; for (i = 1; s1[i]; i++) { for (j = 1; s2[j]; j++) { if(s1[i]==s2[j]) d[i][j] = d[i.. [C++] 11568 : 민균이의 계략 https://www.acmicpc.net/problem/11568 11568번: 민균이의 계략 민균이는 요즘 준민이를 놀리는 일에 재미가 들렸다. 오늘도 그는 준민이를 놀리기 위해 한가지 재미있는 아이디어를 떠올렸다. 그는 하나의 정수가 쓰여 있는 카드 N장을 준비하여 준민이에게 www.acmicpc.net #include #include #include using namespace std; int N; int c;//card number vector::iterator low;//lower_bound index vector v; int main(void) { cin >> N; for (int i = 1; i > c; low = lower_bound(v.begin(), v.end(), c); //lowe.. [C++] 1535 : 안녕 https://www.acmicpc.net/problem/1535 1535번: 안녕 첫째 줄에 사람의 수 N(≤ 20)이 들어온다. 둘째 줄에는 각각의 사람에게 인사를 할 때, 잃는 체력이 1번 사람부터 순서대로 들어오고, 셋째 줄에는 각각의 사람에게 인사를 할 때, 얻는 기쁨이 1번 www.acmicpc.net #include #include using namespace std; int L[21], J[21]; int d[21][101]; void dp(int n) { for (int i = 1; i > N; for (int i = 1; i > L[i]; for (int i = 1; i > J[i]; dp(N); cout [C++] 1932 : 정수 삼각형 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net #include #include using namespace std; int t[501][501]; //table 데이터 int d[501][501]; //dynamic 배열 int ans; void dp(int n) { //초기값 세팅 d[1][1] = t[1][1]; //점화식 for (int i = 1; i [C++] 9251 : LCS https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net #include #include #include using namespace std; char s1[1111], s2[1111]; int d[1111][1111]; int i, j; int main(void) { cin >> s1 + 1 >> s2 + 1; for (i = 1; s1[i]; i++) { for (j = 1; s2[j]; j++) { //.. [C++] 18870 : 좌표 압축 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net #include #include #include using namespace std; int N; int x[1000001]; vector v; //binary search(정렬된 상태만 가능) int bin_search(int target,int low,int high) { //종료 if (low > high) return -1; //탐색 int.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음