코드
#include <iostream>
using namespace std;
typedef long long ll;
ll n,temp,sum,res;
int main() {
while(1) {
cin >> n;
sum = 0;
res = -10003;
if(n == 0) break;
for(int i = 0; i < n; i++) {
cin >> temp;
sum += temp;
res = max(res, sum);
if(sum < 0) sum = 0;
}
cout << res << '\n';
}
return 0;
}
입력이 들어올 때마다 sum에 값을 더해주고, res와 비교한다. 그 후, sum이 음수가 되면 최대값이 될 경우가 없으므로 0으로 초기화시킨다. 다음 값부터 다시 더해주기 위함이다. 그 후, 반복문이 끝나면 답을 출력한다.
'백준' 카테고리의 다른 글
[백준] 14495번 피보나치 비스무리한 수 C++ 코드 (0) | 2024.07.29 |
---|---|
[백준] 17175번 피보나치는 지겨웡~ C++ 코드 (0) | 2024.07.29 |
[백준] 17968번 Fire on Field C++ 코드 (0) | 2024.07.28 |
[백준] 1699번 제곱수의 합 C++ 코드 (0) | 2024.07.28 |
[백준] 2193번 이친수 C++ 코드 (0) | 2024.07.28 |