Algorithm 73

[백준][5582번][DP] 공통 부분 문자열

공통 부분 문자열 https://www.acmicpc.net/problem/5582 1234567891011121314151617181920212223242526272829#include // a 가 빠르면 0 b가 빠르면 1int Dp[4001][4001]; int main(){ int max = 0; char A[4001]; char B[4001]; scanf("%s", A); scanf("%s", B); for (int i = 0; A[i] != 0; i++) for (int j = 0; B[j] != 0; j++) { if (A[i] == B[j]) { if (i == 0 || j == 0) Dp[i][j] = 1; else Dp[i][j] = Dp[i - 1][j - 1] + 1; if (max

[백준][2096번][DP] 내려가기

내려가기 https://www.acmicpc.net/problem/2096 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #include #define Max(a,b) ((a) > (b) ? (a) : (b)) #define Min(a,b) ((a) DP[N-1][0] 과 DP[N-1][1] 과 DP[N-1][2] DP[N][2] -> DP[N-1][1] 과 DP[N-1][2] 위에 같이 연관이 있는걸 알 수 있다 즉 DP 테이블의 이전의 값과 현재의 tower값을 더해서 우리가 원하는 최대값 혹은 최소값을 구할 수 있게 되는 것이다.

[백준][1110번][수학] 더하기 사이클

더하기 사이클https://www.acmicpc.net/problem/1110 1234567891011121314151617181920#include int main(void){ int number; int count = 0; int A, B, C , Add; scanf("%d", &number); Add = number; while (Add != number || count==0){ A = Add / 10; B = Add % 10; C = (A + B) % 10; A = B; B = C; Add = A * 10 + B; count++; } printf("%d\n", count); }Colored by Color Scriptercs1. 결국 이 문제는 실제로 문제를 그대로 실행하면서 끝날때 까지 하면 된다.

Algorithm/수학 2016.04.24
728x90