[[TableOfContents]] = 오늘의 문제 = * [https://www.acmicpc.net/problem/1003|피보나치 함수] * [https://www.acmicpc.net/problem/1149|RGB거리] * [https://www.acmicpc.net/problem/1912|연속합] = 참가자 = * 15이원준 * 박인서 = 코드 = == 15이원준 == === 피보나치 함수 === {{{ #include #include using namespace std; int arr[41][2] = { 0, }; pair search(int num){ if(arr[num][0] + arr[num][1]){ return make_pair(arr[num][0], arr[num][1]); } pair tmp1 = search(num-1); pair tmp2 = search(num-2); arr[num][0] = tmp1.first + tmp2.first; arr[num][1] = tmp1.second + tmp2.second; return make_pair(arr[num][0], arr[num][1]); } int main(){ arr[0][0] = arr[1][1] = 1; int T; cin>>T; while(T--){ int n; cin>> n; search(n); printf("%d %d\n", arr[n][0],arr[n][1]); } } }}} === RGB 거리 === {{{ #include #include using namespace std; int arr[1001][3] = {0,}; int w[1001][3] = {0,}; int main(){ int n; cin>>n; for(int i = 0; i #include #include using namespace std; int arr[100001]; int main(){ int n, ans; cin>> n; for(int i =0; i int main() { int t; std::cin>>t; while(t--){ int n; std::cin>>n; if(n==0){ std::cout<<"1 0\n"; continue; } int a=0,b=1; for(int i=1;i #include struct rgb { int r, g, b; }; std::vector c; rgb dp[1001]; int min(int x, int y) { return x > y ? y : x; } int main(){ int n; std::cin >> n; for (int i = 0; i < n; i++) { rgb t; std::cin >> t.r >> t.g >> t.b; c.push_back(t); } dp[0] = c[0]; for (int i = 1; i < n; i++) { dp[i].r = c[i].r + min(dp[i - 1].g, dp[i - 1].b); dp[i].g = c[i].g + min(dp[i - 1].r, dp[i - 1].b); dp[i].b = c[i].b + min(dp[i - 1].r, dp[i - 1].g); } std::cout << min(min(dp[n - 1].r, dp[n - 1].g), dp[n - 1].b); return 0; } }}} === 연속 합 === {{{ #include #include std::vector a,hap; int main() { int n; std::cin>>n; for(int i=0;i>t; a.push_back(t); } hap.push_back(a[0]); for(int i=1;i