= Mario = ì„ í˜•íƒìƒ‰ì„ 하는 ë¬¸ì œìž…ë‹ˆë‹¤. 재귀함수나, DynamicProgrammingì„ ì—°ìŠµí•˜ëŠ”ë° ì¢‹ìŠµë‹ˆë‹¤. 마리오 ë•í›„는 ë§ˆë¦¬ì˜¤ì˜ ëª©ìˆ¨ì„ ìµœëŒ€í•œìœ¼ë¡œ ê°€ì§€ê³ ì¿ í¼ë¥¼ ìž¡ìœ¼ë ¤ê³ í•©ë‹ˆë‹¤. 그런ë°, ì´ ë•í›„는 ê° íŒë§ˆë‹¤ ëª©ìˆ¨ì„ ì–»ê±°ë‚˜ 잃는 갯수를 ëª¨ë‘ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. ê·¸ë¦¬ê³ ë§ˆë¦¬ì˜¤ëŠ” êµ´ëšì„ 통해 í•œíŒ ë›°ì–´ë„˜ì„ ìˆ˜ 있는 ë°©ë²•ë„ ìžˆìŠµë‹ˆë‹¤. ìµœëŒ€ì˜ ëª©ìˆ¨ì„ ê°€ì§€ëŸ¬ 갈때, ëª‡ê°œì˜ ëª©ìˆ¨ì´ ë 까요? input: 7 1 4 -4 -6 5 -3 -1 output: 5 input2: 5 1 2 3 4 5 output2: 15 ---- ì¢‹ì§€ì•Šì€ ì½”ë“œ 예시: {{{ #include <stdio.h> int bigsum=0; int mario(int arr[],int n,int k,int sum); int main() { int i,j,n,k=0,sum=0; int arr[100]; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&arr[i]); bigsum+=arr[i]; } mario(arr,n,k,sum); printf("%d",bigsum); return 0; } int mario(int arr[],int n,int k,int sum) { if(k==n-1){ if(sum+arr[k]>bigsum){ bigsum=sum+arr[k]; } return 0; }else if(k==n-2){ mario(arr, n, k+1,sum+arr[k]); return 0; } mario(arr, n, k+1,sum+arr[k]); mario(arr, n, k+2,sum+arr[k]); return 0; } }}}