์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
1 ์ด | 128 MB | 27.902% |
๋ฌธ์
n๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ง ์์์ ์์ด์ด ์ฃผ์ด์ง๋ค. ์ฐ๋ฆฌ๋ ์ด ์ค ์ฐ์๋ ๋ช ๊ฐ์ ์๋ฅผ ์ ํํด์ ๊ตฌํ ์ ์๋ ํฉ ์ค ๊ฐ์ฅ ํฐ ํฉ์ ๊ตฌํ๋ ค๊ณ ํ๋ค. ๋จ, ์๋ ํ ๊ฐ ์ด์ ์ ํํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด์ 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 ์ด๋ผ๋ ์์ด์ด ์ฃผ์ด์ก๋ค๊ณ ํ์. ์ฌ๊ธฐ์ ์ ๋ต์ 12+21์ธ 33์ด ์ ๋ต์ด ๋๋ค.
์ ์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ n(1 ≤ n ≤ 100,000)์ด ์ฃผ์ด์ง๊ณ ๋์งธ ์ค์๋ n๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด ์ฃผ์ด์ง๋ค. ์๋ -1,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
์ฒซ์งธ ์ค์ ๋ต์ ์ถ๋ ฅํ๋ค.
ํด๊ฒฐ
key point, ์ฐ์ํฉ์ด ์์๊ฐ ๋๋ ์๊ฐ ๊ฐ์ฅ ํฐ ์ฐ์ํฉ์ ํฌํจ๋์ง ์์! ๊ณ ๋ก ๊ฐฑ์
๋๋ ์์๋ฅผ ๋ง๋๋ฉด ์ผ๋จ ๋ํ๊ณ sum์ด ์์์ผ ๋ ๊ฐฑ์ ํ๋๋ฐ,
์๋์ฒ๋ผ sum์ด ํญ์ ์์์ผ ๋๋ง ๋ํด๋ ๋๊ฐ์ด ํ ์ ์์ต๋๋ค.
if (sum + a > 0){
sum += a;
Max = max(Max, sum);
}
else sum = 0;
์ฝ๋
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
1112 KB | 12 ms |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include<cstdio>
int n;
int main() {
scanf("%d", &n);
int sum = 0, a, max = -1001;
while (n--) {
scanf("%d", &a);
if (sum < 0) {
sum = a;
}
else sum += a;
max = max < sum ? sum : max;
}
printf("%d", max);
return 0;
}
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #14830 ๊ฒฝ์ฌ๋ก (0) | 2020.05.21 |
---|---|
[BOJ] #5397 ํค๋ก๊ฑฐ (0) | 2020.05.21 |
[BOJ] #2512 ์์ฐ (0) | 2020.05.11 |
[BOJ] #13414 ์๊ฐ์ ์ฒญ (0) | 2020.05.02 |
[BOJ] #1748 ์ ์ด์ด ์ฐ๊ธฐ 1 (0) | 2020.04.23 |
๋๊ธ