티스토리 뷰
문제 링크
https://www.acmicpc.net/problem/1912
1912번: 연속합
첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.
www.acmicpc.net
연속되는 값들의 합 중 최대값이기 때문에
이전부터 현재까지 연속되는 값과 현재부터 이후로 연속되는 값을 구해나가야 합니다.
따라서 직전 위치의 최대값+현재값과 현재값 중 더 큰 값을 배열에 저장합니다.
그리고 배열의 값 중 최대값을 구하면 됩니다.
구현 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <algorithm> | |
using namespace std; | |
int num[100001]; | |
int dp[100001]; | |
int main() | |
{ | |
int n; | |
int sum; | |
cin >> n; | |
for (int i = 0; i < n; i++) | |
cin >> num[i]; | |
dp[0] = num[0]; | |
sum = num[0]; | |
for (int i = 1; i < n; i++){ | |
dp[i] = max(dp[i - 1] + num[i], num[i]); | |
sum = max(sum, dp[i]); | |
} | |
cout << sum << endl; | |
return 0; | |
} |
'Coding Test > 백준' 카테고리의 다른 글
[C++] 백준 1699 - 제곱수의 합 (0) | 2020.08.10 |
---|---|
[C++] 백준 2579 - 계단 오르기 (0) | 2020.08.08 |
[C++] 백준 11054 - 가장 긴 바이토닉 부분 수열 (0) | 2020.08.06 |
[C++] 백준 11722 - 가장 긴 감소하는 부분 수열 (0) | 2020.08.05 |
[C++/Python] 백준 11055 - 가장 큰 증가하는 부분 수열 (0) | 2020.08.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HiveQL
- HDFS
- 분할정복
- python
- 삼각형 위의 최대 경로
- 스파크
- 종만북
- microwaving lunch boxes
- Sqoop
- 배열과 문자열
- Django
- 하둡
- 외발 뛰기
- import
- Hadoop
- 알고스팟
- 출전 순서 정하기
- 하이브
- 합친 lis
- 삼각형 위의 최대 경로 수 세기
- 두니발 박사의 탈옥
- Jaeha's Safe
- 코딩인터뷰 완전분석
- 2225
- 팰린드롬 구하기
- C++
- pyspark
- 완전탐색
- 백준
- hive
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함