본문 바로가기
Algorithm

LSCS

by orioncsy 2022. 10. 18.

Largest Sum of contiguous Subarray

정수 배열의 연속 부분 배열의 합 중 최댓값 구하기

public class Solution { 
	public int LSCS(int[] arr) {
        for(int i=0; i<arr.length; i++){
          temp+=arr[i];
          if(temp>LS) LS=temp;
          if(temp<0) temp=0;
        }
    return LS;
	}
}

연속된 값을 계속해서 더해가며 최댓값을 저장하는데, 만약 합이 음수가 나오면 다시 새로 시작하여 검사를 반복한다.

합이 음수가 나오면 이전까지 구했던 최댓값에서 그 뒤에 음수나 양수나 수가 나오면 그전의 합인 음수를 더하지 않는 것이 더 크기 때문에 그 전까지 더한 음수 값을 버리고 다시 시작한다.

 

'Algorithm' 카테고리의 다른 글

[Two Point]uglyNumbers  (0) 2022.11.01
Rest API  (0) 2022.10.20
Binary Search  (0) 2022.10.13
Heap Sort  (0) 2022.10.11
Merge Sort  (0) 2022.10.11