(์๋ ์ชฝ์ update ์์)
์ ์ด ๋ฌธ์ ๋ ๋ณผ ๋๋ง๋ค ์๋ก์ด๊ฑธ๊น?
์ด ์์๋ง ๋ค ๋ค์ฏ ๋ฒ์ ๋ณธ ๊ฒ ๊ฐ๋ค.
์ปจ์ ์:
"์์ ํฉ์ ๋ฐ๋ณต์ ์ผ๋ก ๊ตฌํ๋๋ฐ, ํฉ์ด ์์๋ฉด 0์ผ๋ก ์ด๊ธฐํํ๊ณ ๋ค์ ์๋ถํฐ ๋ค์ ์์ํ๋ค."
ํฉ์ด ์์์ผ ๋ 0์ผ๋ก ์ด๊ธฐํํ๋ ๊ฒ์,
์ ์ฒด ๋ฐฐ์ด ์ค ์์ ์ต์ ํ๋ ์ด์ ์๋ค๊ณ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์์๊ฐ ์ต์ ํ๋ ์ด์ ์๋ค๋ฉด ๊ทธ ์์ ํ๋๋ง ๊ฐ์ง๋ ๊ฒ (์์ ํฉ๋ณด๋ค) ์ด๋์ด๋ค.
๊ทธ๋์ ๋ ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋นํ์ด ์๊ธฐ๋๋ฐ,
๋ฐฐ์ด์ ๋ชจ๋ ์๊ฐ ์์์ธ ๊ฒฝ์ฐ์ 0์ ๋ฐํํ๊ฒ ๋๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด ๊ฒฝ์ฐ๋ ๋ฐฐ์ด์ ์๋ ์ ์ค ๊ฐ์ฅ ํฐ (์)์๋ฅผ ๋ฐํํ๋ค.
๋ฌผ๋ก 0์ ๋ฐํํ ๋ ํญ์ ๋ฐฐ์ด์ ๋ชจ๋ ์๊ฐ ์์์ธ ๊ฒ์ ์๋๋ค.
๋ฐฐ์ด์ ๋ชจ๋ ์๊ฐ 0์ผ ๋, ํน์ 0๊ณผ ์์๋ก๋ง ์ด๋ฃจ์ด์ง ๊ฒฝ์ฐ์๋ 0์ ๋ฐํํ๋ค.
ํ์ง๋ง ์ด ๊ฒฝ์ฐ๋ ๋ฐฐ์ด์ ์๋ ์ ์ค ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฐํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ ์ฉ๋์ด๋ ๊ด์ฐฎ๋ค.
์ถ์ฒ๋ ์ฌ์ง ์๋ ๋งํฌ๋ ๋ด ์๊ฐ
-- update --
์ ๋ฐฉ๋ฒ์์ ํฉ์ด ์์์ผ ๋ 0์ผ๋ก ์ด๊ธฐํํ๋ ๊ฒ์
ํ์ฌ๊น์ง์ ํฉ์ ํ์ฌ ์๋ฅผ ๋ํ๋ ๊ฒ์ด ์ด๋์ธ์ง vs ๊ทธ๋ฅ ํ์ฌ ์ ๋จ๋ ์ผ๋ก ์๋ก์ด ๋ถ๋ถ ๋ฐฐ์ด์ ์์ํ๋ ๊ฒ์ด ์ด๋์ธ์ง
๋ฅผ ํ๋จํ๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์๋์ ๊ฐ์ด๋ ์งค ์ ์์ผ๋ฉฐ
์๋์ ๊ฐ์ด ์งค ๊ฒฝ์ฐ ๋ฐฐ์ด์ ๋ชจ๋ ์๊ฐ ์์์ฌ๋ ๋ค์ ๊ฐ์ฅ ํฐ ์๋ฅผ ์ฐพ์ง ์์๋ ๋๋ค.
int maxSubArray(vector<int>& nums) {
int tmp = 0, maxv = INT_MIN;
for(int i=0; i<nums.size(); i++){
tmp += nums[i];
tmp = max(tmp, nums[i]);
maxv = max(tmp, maxv);
}
return maxv;
}
https://leetcode.com/problems/maximum-subarray/discuss/343771/cpp-faster-than-98 ์ฐธ๊ณ
'Problem Solving > Algorithm, Tips' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Leetcode] Min Stack (0) | 2020.06.28 |
---|---|
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2020.06.24 |
Kruskal / Prim Algorithm (ํฌ๋ฃจ์ค์นผ / ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ) (0) | 2020.06.02 |
Dijkstra Algorithm (๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ) (0) | 2020.06.02 |
๋ฐฑ์ค ์ธํ ๋ฐ๋ ๋ฌธ์ ์๋ฆฌ์ฆ (c++) (0) | 2020.05.19 |
๋๊ธ