문제: app.codility.com/programmers/lessons/9-maximum_slice_problem/max_double_slice_sum/
MaxDoubleSliceSum coding task - Learn to Code - Codility
Find the maximal sum of any double slice.
app.codility.com
결과: 84% 다시 풀어야 함.
if (A.Length <= 3)
return 0;
int preMaxSum = A[1];
int postMaxSum = A[1];
int maxpos = 1;
int minpos = 1;
for (int i = 2; i < A.Length - 1; i++)
{
preMaxSum = Math.Max(A[i], preMaxSum + A[i]);
if (postMaxSum <= preMaxSum)
{
postMaxSum = preMaxSum;
maxpos = i;
}
}
int temp = postMaxSum;
int min = A[maxpos];
for (int i = maxpos; i >= 1; i--)
{
if (min > A[i])
{
min = A[i];
}
temp -= A[i];
if (temp == 0)
{
minpos = i;
break;
}
}
if (min > 0 && (maxpos <= A.Length - 3 || minpos >= 2))
{
return postMaxSum;
}
return postMaxSum - min;
'공부하자 > Codility' 카테고리의 다른 글
[Codility] Lesson9. MaxSliceSum (C#) (0) | 2020.11.20 |
---|---|
[Codility] Lesson9. MaxProfit (C#) (0) | 2020.11.20 |
[Codility] Lesson8. EquiLeader (C#) (0) | 2020.11.20 |
[Codility] Lesson8. Dominator (C#) (0) | 2020.11.20 |
[Codility] Lesson7. StoneWall (C#) (0) | 2020.11.20 |