C++
#include <iostream>
using namespace std;
int main (){
int n;
cin >> n;
while(n != 0) {
// 문제에서 주어진 값의 범위가 -10,000 ~ 10,000
int max = -10005;
int sum = 0;
int input;
for(int i=0;i<n;i++) {
cin >> input;
// 5 -2 13 같은 경우 때문에 감소했다고 무조건 배제할 수 없음
// -10 -8 -7처럼 음수여도 현재 입력으로 들어온 값이 더 클 수 있음
sum = sum + input > input ? sum + input : input;
if(max < sum) {
max = sum;
}
}
cout << max << endl;
cin >> n;
}
}
대충 코드에 주석으로 풀이를 작성했다. 그냥 우연히 글을 보다가 tony9402님의 baekjoon repo를 보게 됐고 오늘의 문제가 있길래 실버 2 문제길래 바로 풀었다. 따로 ide 없이 백준 사이트에서 제출하기에 답을 적어서 깔끔하지 않을 수 있다... 틈틈히 문제 풀면 정리해서 올령야겠다.