n=int(input())
num=list(map(int, input().split()))
sum=[num[0]]
for i in range(len(num)-1):
    sum.append(max(sum[i]+num[i+1],num[i+1]))
print(max(sum))

<코드설명>

입력받을 정수의 개수를 n으로 입력받아주었다. 그리고 num에 list형식으로 수열을 입력받아주었다.

num의 수열을 for문을 통해 돌면서, sum[i]+num[i+1]이 더 큰 지, 아니면 num[i+1]이 더 큰 지를 비교해주고 더 큰 수를 sum에 append 해주었다. 여기서 sum의 첫번째값을 num의 첫번째 원소인 num[0]을 주었는데, 만약 0을 주면 음수만으로 이루어진 수열에서도 0이 최소값이 되어버리며, 입력받을 수의 최소값인 -1000을 주게된다면 가장 첫번째 원소만 더해주었을 때가 최소값일 때를 고려하지 못한다.

이렇게 구한 sum 중에서 가장 큰 원소값을 출력해주었다.

 

 

<실행결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 2910 빈도 정렬  (0) 2022.10.02
[BOJ] 25325 학생 인기도 측정  (0) 2022.10.02
[BOJ] 3986 좋은 단어  (0) 2022.09.25
[BOJ] 22233 가희와 키워드  (0) 2022.09.24
[BOJ] 1475 방 번호  (0) 2022.09.18

+ Recent posts