Codility Java MaxSliceSum
업데이트:
문제
코드
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
int result = A[0];
int sum = A[0];
for (int idx = 1; idx < A.length; idx++) {
sum = Math.max(A[idx], sum + A[idx]);
if (result < sum) {
result = sum;
}
}
return result;
}
}
설명
- 최소 배열의 크기가 1개이므로, 결과를 저장하는 result는 주어진 배열 A의 0번째 인덱스의 값으로 초기화 한다.
- 1번의 이유로 반복은 1번째 인덱스부터 반복을 돌려 최대 값을 탐색한다.
- 해당 값이 이전의 최대 합보다 크다면, 해당 값부터 합계가 시작하도록 최대 합계를 저장하는 변수 sum에 저장한다.
- 만일 최대 합계를 저장하는 변수 sum이 결과를 저장하는 변수 result보다 크다면 result에 최대 합계로 저장한다.
- 반복이 끝나면 최대 합계를 저장한 result를 주어진 문제의 결과로 반환한다.
결과
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기