Mario ¶
- μ ννμμ νλ λ¬Έμ μ
λλ€. μ¬κ·ν¨μλ, DynamicProgrammingμ μ°μ΅νλλ° μ’μ΅λλ€.
- λ§λ¦¬μ€ λνλ λ§λ¦¬μ€μ λͺ©μ¨μ μ΅λνμΌλ‘ κ°μ§κ³ μΏ νΌλ₯Ό μ‘μΌλ €κ³ ν©λλ€. κ·Έλ°λ°, μ΄ λνλ κ²μμ λ무 μ¬λ¬λ² νλλ κ° Stageμμ λͺ©μ¨μ μ»κ±°λ μλ κ°―μκ° νμ μΌμ ν©λλ€. λ, μ΄ λνλ λͺ¨λ μ§λ¦κΈΈμ λ€ μκ³ μμ΄ μνλ€λ©΄ κ΅΄λμ ν΅ν΄ λ§λ¦¬μ€λ₯Ό ν Stageλ₯Ό 건λλ°κ² ν μ μμ΅λλ€.(1ν->3ν, 3->5ν λ±, νμμ ν μμ) μ΄ λνλ κ°μ₯ λ§μ λͺ©μ¨μ μ»μ μ±λ‘ κ²μμ λλ΄κ³ μΆμ΄ν©λλ€.(λ§μ§λ§ μΏ νΌκ° λμ€λ Stageλ κΌ λ€λ¬μΌν©λλ€) μ΄λ, μ΄ λνλ λͺ κ°μ λͺ©μ¨μΌλ‘ κ²μμ λλΌ μ μμκΉμ?
5
1 2 3 4 5
output1: 15
input2:
4
-2 1 -4 -3
output2: -4
4
-2 1 -4 -3
output2: -4
input3:
3
2 -3 4
output3: 6
3
2 -3 4
output3: 6
input4:
7
1 4 -4 -6 5 -3 -1
output4: 5
7
1 4 -4 -6 5 -3 -1
output4: 5
judgeν μ μλ μ¬μ΄νΈκ° μμΌλ―λ‘(μ체 μ μλ λ¬Έμ μ
λλ€) μμμ μ νκ³ , νμΈν΄λ³΄μκΈ° λ°λλλ€.
μ’μ§μμ μ½λ μμ(μ¬μ§μ΄ ν릴 μλ μμ΅λλ€):
#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; }