diff --git a/maximum-subarray/yeonjukim164.java b/maximum-subarray/yeonjukim164.java new file mode 100644 index 0000000000..05e8cf4d30 --- /dev/null +++ b/maximum-subarray/yeonjukim164.java @@ -0,0 +1,20 @@ +class Solution { + public int maxSubArray(int[] nums) { + if (nums == null || nums.length == 0) { + return 0; + } + + int currentSum = nums[0]; + int maxSum = nums[0]; + + for (int i = 1; i < nums.length; i++) { + // 현재까지의 연속 합을 이어갈지, 새로 시작할지 결정 + currentSum = Math.max(nums[i], currentSum + nums[i]); + + // 전역 최대값 업데이트 + maxSum = Math.max(maxSum, currentSum); + } + + return maxSum; + } +}