반응형
📖 문제
📋 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int sum = 0;
int ans = 0;
int arr[] = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
for (int i = 0; i < N; i++) {
sum += arr[i];
if(sum < 0) sum = 0;
ans = Math.max(ans, sum);
}
if(ans == 0) { // 모든 원소가 음수이므로
Arrays.sort(arr);
System.out.println(arr[arr.length-1]);
}else {
System.out.println(ans);
}
}
}
👨🏻💻 결과
배열의 원소 하나씩 더해가면서 합이 음수가 되면 0으로 초기화하고 다시 더해가면서 최댓값을 찾습니다.
만약 최댓값이 0이라면 배열의 모든 원소가 음수였다는 의미이므로 정렬을 하여 가장 큰 수를 출력해줍니다.
🔗 링크
https://www.acmicpc.net/problem/1912
반응형
'🧩PS > 🥉Easy' 카테고리의 다른 글
[JAVA] 백준 2745번 - 진법 변환 (0) | 2021.11.03 |
---|---|
[JAVA] 백준 11047번 - 동전 0 (0) | 2021.10.27 |
[JAVA] 백준 11053번 - 가장 긴 증가하는 부분 수열 (0) | 2021.10.24 |
[JAVA] 백준 9461번 - 파도반 수열 (0) | 2021.10.15 |
[JAVA] 백준 18870번 - 좌표 압축 (0) | 2021.10.07 |