#32
최대 구간 합
채점 준비중
시간 제한
2000ms
메모리 제한
256MB
제출
94
정답
35
맞힌 사람
32
정답 비율
37.2%

길이가 N 인 수열 A_1, A_2, ..., A_N 이 주어질 때, 이 수열의 최대 구간 합을 구해보자.

입력

첫째 줄에 정수 N (1 ≤ N ≤ 100) 이 주어진다.

둘째 줄에 정수 A_1, A_2, ..., A_N (-100 ≤ A_i ≤ 100) 이 주어진다.

출력

주어진 수열의 최대 구간 합을 출력한다.

예제 입력 1

4
-1 3 -2 4

예제 출력 1

5

예제 입력 2

3
-1 -2 -3

예제 출력 2

-1

참고

구간 합이란 수열의 연속한 부분을 합한 값이다. 예를 들어 [1, 2, 3] 의 구간 합은 [1] = 1, [1, 2] = 3, [1, 2, 3] = 6, [2] = 2, [2, 3] = 5, [3] = 3 으로 총 6개가 있다. 최대 구간 합이란 이 6개중 가장 큰 합을 말한다.

수열의 원소가 모두 음수가 아니라면 당연히 최대 구간 합은 모든 원소의 합과 같다. 하지만 수열에 음수가 포함된다면 그렇지 않을 수도 있다. 예를 들어, [-1, 3, -2, 4] 의 최대 구간 합은 [3, -2, 4] = 5 이다.

그러므로 모든 구간에 대해서 구간 합을 구해서 그 중 가장 큰 구간 합을 찾아야 한다. 가능한 구간의 개수는 총 ~N^{2}~개 있다.

누적 합 배열(Prefix sum array)를 사용하면 구간 합을 빠르게 구할 수 있다. 어떤 구간의 시작과 끝이 L, R (1 ≤ L ≤ R ≤ N) 일 때 누적 합 배열 P_1, P_2, ..., P_N 을 이용하면 A_L + A_{L+1} + ... + A_RP_R - P_{L-1} 을 통해서 구할 수 있다.

** P_{L-1} 에서 L - 1 이 배열의 인덱스를 벗어날 수도 있는 것에 유의한다.**

코드 제출
로딩 중...
내 제출
아직 제출 내역이 없습니다.
맞은 사람
순위사용자언어시간메모리코드 길이
🥇202104340_김재덕C103ms940KB459B
🥈202202658_황현석C++146ms1876KB340B
🥉202302534_김승현Python434ms10368KB488B
4202402751_한현욱Python435ms10368KB370B
5202102700_정민용Python439ms10368KB397B
6202401828_백성현Python442ms10240KB234B
7202102659_안우진Python443ms10240KB235B
8202402699_오태영Python477ms10240KB277B
9202200884_이선기Python543ms10496KB280B
10202102622_김우솔Java964ms26752KB976B
11202102717_최성윤Java968ms26752KB840B
12202301773_이종현Java970ms25648KB746B
13202302538_김유승Java988ms25628KB978B
14안유진Java1007ms25636KB944B
15202302590_이동하Java1015ms25616KB870B
16202002511_송준원Java1016ms26624KB863B
17201802070_김시온Java1050ms26364KB1096B
18202202596_배인수Java1052ms25620KB714B
19202302584_유희찬Java1200ms27836KB555B
20202102553_윤서웅Java1205ms28160KB623B
1 / 2
전체 제출
#사용자결과언어시간메모리코드 길이제출 시간
3258202402656_김영수오답Java1203ms28160KB684B2024. 05. 02. 11:47
3256202402665_김진하정답Java1207ms28288KB565B2024. 05. 02. 11:45
3255202402665_김진하컴파일 에러Python--565B2024. 05. 02. 11:44
3254202402656_김영수오답Java1206ms28160KB685B2024. 05. 02. 11:41
3252202402656_김영수오답Java1204ms28032KB679B2024. 05. 02. 11:41
3251202102635_문일광컴파일 에러Python--298B2024. 05. 02. 11:40
3250202102635_문일광컴파일 에러Python--298B2024. 05. 02. 11:40
3249202102635_문일광컴파일 에러Python--291B2024. 05. 02. 11:40
3248202102635_문일광컴파일 에러Python--292B2024. 05. 02. 11:40
3242202402656_김영수오답Java1249ms28160KB685B2024. 05. 02. 11:38
3238202402755_황은영정답Java1231ms28160KB611B2024. 05. 02. 11:36
3233202402664_김지후정답Java1213ms28032KB974B2024. 05. 02. 11:34
3232202402755_황은영컴파일 에러Java--668B2024. 05. 02. 11:34
3231202402656_김영수오답Java1270ms28032KB684B2024. 05. 02. 11:34
3230202402664_김지후오답Java1252ms28032KB974B2024. 05. 02. 11:33
3227202402656_김영수오답Java1241ms28288KB685B2024. 05. 02. 11:32
3226202102635_문일광런타임 에러Python437ms10240KB286B2024. 05. 02. 11:32
3225202402656_김영수컴파일 에러Python--685B2024. 05. 02. 11:31
3223202102635_문일광오답Python441ms10240KB285B2024. 05. 02. 11:31
3219202402656_김영수컴파일 에러Python--685B2024. 05. 02. 11:29
1 / 5