http://hellogohn.com/post_one256




제가 통과된 코드랑 제 코드에 입력 여러가지 해보고 결괏값 비교해봤는데 다 같았거든요


근데 제 코드만 통과가 안되네요... 논리도 문제 없는 거 같은데


이게 통과되는 코드구요

http://hellogohn.com/post_one256


이게 제 코드에요..


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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include<iostream>
#define MAX(a,b) (((a)>(b))?(a):(b))
using namespace std;
//amount of stair
int n = 0;
//array of stair
int* stairArray = 0;
//sum of value array
int* sumArray = 0;
//compare two value and get right value to sumArray
int getSumValue(int i)
{
int maxvalue = 0;
if (i == 0 || i == 1 || i == 2)
return sumArray[i];
else
maxvalue = MAX(sumArray[i-2] + stairArray[i], sumArray[i - 3] + stairArray[i - 1] + stairArray[i]);
return maxvalue;
}
int main()
{
//get amount of stair
cin >> n;
if (n > 300 || n < 0)
return 0;
//array of stair
stairArray = (int*)malloc(sizeof(int)*n);
//sum of value array
sumArray = (int*)malloc(sizeof(int)*n);
//get array of stair
for (int i = 0; i < n; i++)
{
cin >> stairArray[i];
if (stairArray[i] > 10000 || stairArray[i] < 0)
return 0;
}
/////////////////////////////////////
if (n > 2)
{
//init firstvalue;
sumArray[0] = stairArray[0];
sumArray[1] = sumArray[0] + stairArray[1];
sumArray[2] = sumArray[0] + stairArray[2];
}
else if (n == 2)
{
cout << stairArray[0] + stairArray[1];
return 0;
}
else if( n==1)
{
cout << stairArray[0];
return 0;
}
/////////////////////////////////
//logic to get sumArray[n];
///logic///
for (int i = 0; i < n; i++)
{
sumArray[i] = getSumValue(i);
}
///logic///
cout << sumArray[n - 1] << endl;
return 0;
}
cs