๊ฐ์
๊ตฌ๊ฐ ํฉ์ ์ซ์ ๋ฐฐ์ด์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฒ์ด๋ค. ์ด ๋ฐฉ๋ฒ์ prefix
๋ผ๋ ์ ๋ฐฐ์ด์ ๋ง๋๋ ๊ฒ์ผ๋ก, prefix[i]
๋ ์ธ๋ฑ์ค i
๊น์ง(ํด๋น ์ธ๋ฑ์ค ํฌํจ)์ ๋ชจ๋ ์์์ ํฉ์ด ๋๋๋ก ๊ตฌ์ฑํ๋ค. ์๋ฅผ ๋ค์ด, nums = [5, 2, 1, 6, 3, 8]
๊ฒฝ์ฐ, prefix = [5, 7, 8, 14, 17, 25]
๋ฅผ ์ป์ ์ ์๊ฒ ๋๋ค.
๋ถ๋ถ ๋ฐฐ์ด์ด ์ธ๋ฑ์ค
0
์์ ์์ํ๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ๋ฐฐ์ด์ โ๊ตฌ๊ฐโ์ผ๋ก ๋ณธ๋ค. ๊ตฌ๊ฐ ํฉ์ ์ด๋ฌํ ๊ตฌ๊ฐ๋ค์ ํฉ์ ์๋ฏธํ๋ค.
์ด ๊ตฌ๊ฐ ํฉ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ด๋ค ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ๋ $O(1)$ ์๊ฐ ๋ด์ ๊ตฌํ ์ ์๋ค. i
๋ถํฐ j
(ํฌํจ)๊น์ง์ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์ด ํ์ํ ๊ฒฝ์ฐ, ๊ฒฐ๊ณผ๋ prefix[j] - prefix[i - 1]
์ด ๋๋ฉฐ, i = 0
์ธ ์ํฉ์์ ๋ฒ์๋ฅผ ์ด๊ณผํ๋ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ถ์ง ์๋ค๋ฉด, prefix[j] - prefix[i] + nums[i]
๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ด๋ฌํ ๊ณ์ฐ์ด ๊ฐ๋ฅํ ์ด์ ๋ prefix[i - 1]
์ด ์ธ๋ฑ์ค i
์ด์ ์ ๋ชจ๋ ์์๋ค์ ํฉ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ์ธ๋ฑ์ค j
๊น์ง์ ๋ชจ๋ ์์์ ํฉ์์ ์ด ๊ฐ์ ๋นผ๋ฉด, ์ธ๋ฑ์ค i
์์ j
๊น์ง์ ์์๋ค์ ํฉ, ์ฆ ์ฐ๋ฆฌ๊ฐ ์ฐพ๋ ๊ฐ์ด ๋จ๊ฒ ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก, ํ์ํ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์ ํจ๊ณผ์ ์ผ๋ก ์ฐพ์ ์ ์๋ค.
์ ์ด๋ฏธ์ง์์, ์ฐ๋ฆฌ๋ ํ๋์์ผ๋ก ๊ฐ์กฐ๋ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์ ์ฐพ๊ณ ์ ํ๋ค.
๋ถ๋ถ ๋ฐฐ์ด ๋๊น์ง์ ๋ชจ๋ ์์(์ด๋ก์ ์ )๋ฅผ ๊ฐ์ ธ์ ๊ทธ๊ฒ ์ด์ ์ ๋ชจ๋ ์์(๋นจ๊ฐ์ ์ )๋ฅผ ๋นผ๋ฉด ์ํ๋ ๋ถ๋ถ ๋ฐฐ์ด์ ์ป์ ์ ์๊ฒ ๋๋ค. ๊ตฌ๊ฐ ํฉ์ ์ฌ์ฉํ๋ฉด, ์ด๋ก์ ์ ์ ํฉ์ธ
25
์ ๋นจ๊ฐ์ ์ ์ ํฉ์ธ11
์ ์์ ์๊ฐ ์์ ์ฐพ์, ๊ทธ ์ฐจ์ด๋ฅผ ์ด์ฉํ์ฌ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์ด14
์์ ์ ์ ์๋ค.
๊ตฌ๊ฐ ํฉ์ ๋ง๋๋ ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํ๋ค. ๋ค์์ ์์ฌ ์ฝ๋์ด๋ค:
1
2
3
4
5
nums๋ผ๋ ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋,
prefix = [nums[0]]
for (int i = 1; i < nums.length; i++)
prefix.append(nums[i] + prefix[prefix.length - 1])
์ฒ์์๋ ์ฒซ ๋ฒ์งธ ์์๋ก ์์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ์ธ๋ฑ์ค 1
๋ถํฐ i
๋ฅผ ์ด์ฉํ์ฌ ๋ฐ๋ณตํ๋ฉด์ ์งํํ๋ค. ์ด๋ค ์์ ์์๊ฑด, prefix
์ ๋ง์ง๋ง ์์๋ ์ธ๋ฑ์ค i
๊น์ง์ ๋ชจ๋ ์์๋ค์ ํฉ์ ๋ํ๋ธ๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๊ทธ ๊ฐ์ ํ์ฌ ๊ฐ์ ๋ํ์ฌ prefix
์ ๋ง์ง๋ง์ ์ถ๊ฐํ๊ณ ๋ค์ ์์๋ก ๋์ด๊ฐ ์ ์๋ค.
๊ตฌ๊ฐ ํฉ์ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํจ์ ์์ด ๋งค์ฐ ์ ์ฉํ ๋๊ตฌ์ด๋ค. ๊ตฌ์ถํ๋ ๋ฐ ๋๋ ๋น์ฉ์ $O(n)$์ด์ง๋ง, ์ดํ์ ๋ชจ๋ ๋ถ๋ถ ๋ฐฐ์ด ์กฐํ๋ฅผ $O(1)$์ ์ํํ ์ ์๊ฒ ํด์ฃผ๋ฏ๋ก, ๋ณดํต ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ฅผ $O(n)$๋งํผ ํฅ์์ํฌ ์ ์๋ค. ์ด ๋ $n$์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค. ๋ค์ํ ์์๋ฅผ ํตํด ๋ ์์ธํ ์ดํดํด๋ณด์.
๊ตฌ๊ฐ ํฉ ๊ตฌ์ถ์ ์ ์ฒ๋ฆฌ์ ์ผ์ข ์ด๋ค. ์ ์ฒ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ ๋ก์ง์ ์คํํ๊ธฐ ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ฏธ๋ฆฌ ๊ณ์ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ์ผ๋ก์จ, ๋ค์ํ ๋ฌธ์ ์ํฉ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. ์ ์ฒ๋ฆฌ ๊ณผ์ ์ ์๊ฐ์ด ์์๋๊ธฐ๋ ํ์ง๋ง, ์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ ๋จ๊ณ์์ ํฌ๊ฒ ์๊ฐ์ ์ ์ฝํ ์ ์๋ ํฌ์๋ผ๊ณ ๋ณผ ์ ์๋ค.
์์ 1: ๋ถ๋ถ ๋ฐฐ์ด ํฉ ์ฟผ๋ฆฌ ์ฒ๋ฆฌํ๊ธฐ
์ ์ ๋ฐฐ์ด
nums
์queries
๋ฐฐ์ด์ด ์ฃผ์ด์ง๋ฉฐ, ์ด๋queries[i] = [x, y]
ํํ์ด๋ค. ๋ํ ์ ์limit
์ด ์ฃผ์ด์ง๋ค. ์ด์ ๋ํ ๋ต์ผ๋ก, ๊ฐ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ๋ถ์ธ ๋ฐฐ์ด์ ๋ฐํํด์ผ ํ๋ค. ๋ง์ฝ x๋ถํฐ y๊น์ง์ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์ดlimit
๋ณด๋ค ์๋ค๋ฉด ํด๋น ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋true
์ด๋ฉฐ, ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐfalse
์ด๋ค.์๋ฅผ ๋ค์ด,
nums = [1, 6, 3, 2, 7, 2]
,queries = [[0, 3], [2, 5], [2, 4]]
, ๊ทธ๋ฆฌ๊ณlimit = 13
์ด๋ผ๋ฉด, ๋ฐํ๋๋ ๋ต์[true, false, true]
์ด๋ค. ๊ฐ ์ฟผ๋ฆฌ์ ๋ํ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์[12, 14, 12]
์ด๋ค.
์ด์ ๊ตฌ๊ฐ ํฉ์ ๋ง๋ค๊ณ , ์์์ ์ค๋ช ํ ๋ฐฉ๋ฒ์ ์ด์ฉํ์ฌ ๊ฐ ์ฟผ๋ฆฌ์ ๋ํ ๋ต์ $O(1)$์ ๋ณต์ก๋๋ก ์ฐพ์๋ณด์.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vector<bool> answerQueries(vector<int>& nums, vector<vector<int>>& queries, int limit) {
vector<int> prefix = {nums[0]};
for (int i = 1; i < nums.size(); i++) {
prefix.push_back(prefix.back() + nums[i]);
}
vector<bool> ans;
for (vector<int>& query: queries) {
int x = query[0], y = query[1];
int curr = prefix[y] - prefix[x] + nums[x];
ans.push_back(curr < limit);
}
return ans;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fn answer_queries(nums: Vec<i32>, queries: Vec<Vec<i32>>, limit: i32) -> Vec<bool> {
let mut prefix = vec![nums[0]];
for i in 1..nums.len() {
let last = *prefix.last().unwrap();
prefix.push(last + nums[i]);
}
let mut ans = Vec::new();
for query in queries {
let (x, y) = (query[0] as usize, query[1] as usize);
let curr = prefix[y] - prefix[x] + nums[x];
ans.push(curr < limit);
}
ans
}
๊ตฌ๊ฐ ํฉ ์์ด ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์ต์
์ ๊ฒฝ์ฐ $O(n)$์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ฉฐ, ์ฌ๊ธฐ์ $n$์ nums
์ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค. m = queries.length
๋ผ๊ณ ํ ๋, ์๊ฐ ๋ณต์ก๋๋ $O(n*m)$์ด ๋๋ค. ๋ฐ๋ฉด, ๊ตฌ๊ฐ ํฉ์ ์ด์ฉํ๋ฉด, ์ด๋ฅผ ์์ฑํ๋ ๋ฐ $O(n)$์ด ์์๋์ง๋ง ๊ฐ ์ฟผ๋ฆฌ์ ๋ํ ๋ต์ $O(1)$๋ก ์ค์ด๋ ๋ค. ์ด ๋ฐฉ๋ฒ์ $O(n+m)$์ ๋ ๋์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ ๊ณตํ๋ค. ๊ตฌ๊ฐ ํฉ ๋ฐฐ์ด์ ์์ฑํ๊ธฐ ์ํ ๊ณต๊ฐ ๋ณต์ก๋๋ $O(n)$์ด ํ์ํ๋ค.
์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ํตํด, ์ฃผ์ด์ง limit
์กฐ๊ฑด ํ์์ queries
์ ๋ช
์๋ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์ ํจ์จ์ ์ผ๋ก ๊ณ์ฐํ ์ ์๋ค. ๊ตฌ๊ฐ ํฉ์ ์ด๊ธฐ ๋ฐฐ์ด ์ค์ ์ ์๊ฐ์ด ์์๋๊ธด ํ์ง๋ง, ์ดํ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ ์๊ฐ์ ๋ํญ ์ค์ฌ์ค๋ค๋ ์ฅ์ ์ด ์๋ค.
์์ 2: ๋ฐฐ์ด ๋ถํ ๋ฐฉ๋ฒ์ ์
์ ์ ๋ฐฐ์ด
nums
๊ฐ ์ฃผ์ด์ก์ ๋, ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ ํฉ์ด ๋ ๋ฒ์งธ ๋ถ๋ถ์ ํฉ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ฒ ๋ฐฐ์ด์ ๋ ๋ถ๋ถ์ผ๋ก ๋๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ์ฐพ์๋ณด์. ๋ ๋ฒ์งธ ๋ถ๋ถ์ ์ต์ ํ ๊ฐ์ ์ซ์๋ฅผ ํฌํจํด์ผ ํ๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ง์ ์ ์ธ ๋ฐฉ๋ฒ์ ๊ฐ ์ธ๋ฑ์ค i
์ ๋ํด 0
๋ถํฐ nums.length - 1
๊น์ง ๋ฐ๋ณตํ๋ ๊ฒ์ด๋ค. ๊ฐ ์ธ๋ฑ์ค์์ 0
๋ถํฐ i
๊น์ง ๋ฐ๋ณตํ์ฌ ์ผ์ชฝ ๋ถ๋ถ์ ํฉ์ ๊ตฌํ๊ณ , i + 1
๋ถํฐ ๋ฐฐ์ด์ ๋๊น์ง ๋ฐ๋ณตํ์ฌ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ํฉ์ ๊ตฌํ๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ $O(n^2)$์ด๋ค.
ํ์ง๋ง, ๋จผ์ ๊ตฌ๊ฐ ํฉ์ ๊ณ์ฐํ๋ฉด ๊ฐ ์ธ๋ฑ์ค์ ๋ํ ๋ฐ๋ณต ๊ณผ์ ์ค์ ์ผ์ชฝ ๋ฐ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ํฉ์ $O(1)$์ ์ ์ ์์ผ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ฅผ $O(n)$์ผ๋ก ์ค์ผ ์ ์๋ค.
์์ 2 ์์ธ ์ค๋ช
๋ฐฐ์ด์ ๋ ๋ถ๋ถ์ผ๋ก ๋๋๊ฒ ๋๋ฉด ๋ ๋ถ๋ถ ๋ฐฐ์ด์ด ์์ฑ๋๋ค. ์ด๊ฒ๋ค์ ํฉ์ ์ฐพ์ ๋น๊ตํ๋ ๊ณผ์ ์ด ํ์ํ๋ค. ๋ฐฐ์ด์ ๋๋๋ ๋ฐ๋ $n-1$๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ผ๋ฉฐ(์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ๋น์ด ์์ง ์์์ผ ํจ), ์ด ๊ฐ๊ฐ์ ๋ถํ ์ ๋ํด ๋ ๋ถ๋ถ ๋ฐฐ์ด ์ฌ์ด๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ๊ทธ ํฉ์ ์ฐพ๋ ๋ฐ $O(n)$์ด ๊ฑธ๋ฆฐ๋ค.
๊ทธ๋ฌ๋ ๋ถํ ์ ์๋ํ๊ธฐ ์ ์ ํ ๋ฒ $O(n)$์ ์๋ชจํ์ฌ ๊ตฌ๊ฐ ํฉ์ ๋ง๋ค ์ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๊ฐ์ $n-1$ ๋ถํ ์ $O(1)$ ์๊ฐ ์์ ์ํํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ์๋ ค์ง ๋ฐ์ ๊ฐ์ด, ๊ตฌ๊ฐ ํฉ์ ํ์ฉํ๋ฉด ์ด๋ค ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ๋ $O(1)$์ ๊ตฌํ ์ ์๋ค.
์๋ฅผ ๋ค์ด, ์ธ๋ฑ์ค i
์์ ๋ฐฐ์ด์ ๋๋๋ค๊ณ ๊ฐ์ ํ์. ์ผ์ชฝ ๋ถ๋ถ์ ์ธ๋ฑ์ค i
๊น์ง์ ๋ชจ๋ ์์๋ฅผ ํฌํจํ๋ฏ๋ก prefix[i]
์ ํฉ์ ๊ฐ๋๋ค. ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ์ธ๋ฑ์ค i + 1
๋ถํฐ ์์ํ์ฌ ์ต์ข
์ธ๋ฑ์ค n - 1
์์ ๋๋๋ฏ๋ก, prefix[n - 1]
์์ prefix[i]
๋ฅผ ๋บ ๊ฐ์ด ๊ทธ ํฉ์ด ๋๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int waysToSplitArray(vector<int>& nums) {
int n = nums.size();
vector<long> prefix = {nums[0]};
for (int i = 1; i < n; i++) {
prefix.push_back(nums[i] + prefix.back());
}
int ans = 0;
for (int i = 0; i < n - 1; i++) {
long leftSection = prefix[i];
long rightSection = prefix.back() - prefix[i];
if (leftSection >= rightSection) {
ans++;
}
}
return ans;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
fn ways_to_split_array(nums: Vec<i32>) -> i32 {
let n = nums.len();
let mut prefix = Vec::new();
prefix.push(nums[0] as i64); // long
for i in 1..n {
prefix.push(nums[i] as i64 + prefix[i - 1]);
}
let mut ans = 0;
for i in 0..n - 1 {
let left_section = prefix[i];
let right_section = prefix[n - 1] - prefix[i];
if left_section >= right_section {
ans += 1;
}
}
ans
}
๋ฐฐ์ด์ด ์ ๋ง ํ์ํ ๊น?
์ด ๋ฌธ์ ์์๋ prefix
์ ์ ๊ทผํ๋ ์์๊ฐ ์ ์ง์ ์ผ๋ก ์ฆ๊ฐํ๋ค. leftSection
์ ์ฐพ๊ธฐ ์ํด์๋ ๊ฐ ๋ฐ๋ณต๋ง๋ค 1
์ฉ ์ฆ๊ฐํ๋ i
์ ๋ํด prefix[i]
๋ฅผ ์ํํ๋ค.
์ด๋ฌํ ์ ์ ๊ฐ์ํ ๋, leftSection
์ ๊ณ์ฐํ๋ ๋ฐ ๋ฐฐ์ด์ ์ค์ ๋ก ํ์ํ์ง ์๋ค. leftSection
์ 0
์ผ๋ก ์ด๊ธฐํํ๊ณ , ๊ฐ ๋ฐ๋ณต์์ ํ์ฌ ์์๋ฅผ ๋ํ๋ ๋ฐฉ์์ผ๋ก ์ฆ์์์ ๊ณ์ฐํ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด rightSection
์ ์ด๋จ๊น? ์ ์์ ๋ฐ๋ฅด๋ฉด ์ค๋ฅธ์ชฝ ์น์
์ ์ผ์ชฝ ์น์
์ ์๋ ๋ฐฐ์ด์ ๋ชจ๋ ์ซ์๋ฅผ ํฌํจํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก, ์ฐ๋ฆฌ๋ ์ ์ฒด ์
๋ ฅ์ ํฉ์ total
๋ก ๋ฏธ๋ฆฌ ๊ณ์ฐํ ์ ์์ผ๋ฉฐ, rightSection
์ total - leftSection
์ผ๋ก ๊ณ์ฐํ ์ ์๋ค.
๊ตฌ๊ฐ ํฉ์ ๊ฐ๋
์ ์ฌ์ ํ ์ฌ์ฉํ๊ณ ์์ง๋ง, leftSection
์ ๊ฐ ๊ฐ์ ๊ตฌ๊ฐ์ ํฉ์ ๋ํ๋ธ๋ค. ๋ฐฐ์ด์ด ์๋ ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ์ ๋ณต์ ํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int waysToSplitArray(vector<int>& nums) {
int ans = 0;
long leftSection = 0;
long total = 0;
for (int num: nums) {
total += num;
}
for (int i = 0; i < nums.size() - 1; i++) {
leftSection += nums[i];
long rightSection = total - leftSection;
if (leftSection >= rightSection) {
ans++;
}
}
return ans;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fn ways_to_split_array(nums: Vec<i32>) -> i32 {
let mut ans = 0;
let mut left_section = 0;
let total: i32 = nums.iter().sum();
for i in 0..nums.len() - 1 {
left_section += nums[i];
let right_section = total - left_section;
if left_section >= right_section {
ans += 1;
}
}
ans
}
์ด๋ ๊ฒ ํ์ฌ ๊ณต๊ฐ ๋ณต์ก๋๋ฅผ $O(1)$๋ก ๊ฐ์ ํ์๊ณ , ์ด๋ ์ฑ๋ฅ์ด ํฌ๊ฒ ๊ฐ์ ๋ ๊ฒ์ด๋ค.
๋ง๋ฌด๋ฆฌ
๋ฐฐ์ด๊ณผ ๋ฌธ์์ด์ ๋ํ ์ฃผ์ ํจํด์ ๋ง์ง๋ง ์ฑํฐ๋ฅผ ์ดํด๋ณด์๋ค. ๋ค์ ๋ฌธ์์์๋ ๋ช ๊ฐ์ง ๋ ์ผ๋ฐ์ ์ธ ํธ๋ฆญ๊ณผ ํจํด์ ๋ค๋ฃฐ ์์ ์ด๋ค.
๋ณด๋์ค ๋ฌธ์
- 1480. Running Sum of 1d Array
- 1413. Minimum Value to Get Positive Step by Step Sum
- 2090. K Radius Subarray Averages
- 1732. Find the Highest Altitude
- 724. Find Pivot Index
- 303. Range Sum Query - Immutable
์ถ์ฒ: Leetcode