[BOJ] 11659๋ฒ | ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4 (C++)
2023. 8. 27. 15:30ใCoding Test/BOJ
๐๋ฌธ์ ๋ณด๋ฌ๊ฐ๊ธฐ
๐ง๐ปํ์ด ๊ณผ์
๋ฐฑ์ค ์ฌ์ดํธ์์ ๋จ๊ณ๋ณ ํ์ด๋ณด๊ธฐ๋ฅผ ์ฐจ๋ก๋๋ก ์ ๋ณต ์ค์ธ๋ฐ, ๊ทธ ์ค ๋์ ํฉ์ด๋ผ๋ ์ ํ์ ๋ํ ์ฒซ ๋ฌธ์ ์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ ๋ฑ ์๊ฐ๋ ๊ฒ์, ํต๊ณํ์์ ์ฐ์ด๋ ๋์ ๋ถํฌํจ์(CDF, Cumulative Distribution Function)์์ต๋๋ค.
๋ฌผ๋ก ๊ฐ๋ ์ ์ผ๋ก ์์ ํ ๋์ผํ ๊ฒ์ ์๋์ง๋ง, ์ ํ์ด์ ๊ธฐ๋ฐ ์์ด๋์ด๊ฐ ๋์ด ์ฃผ์์ต๋๋ค.
ํด๋น ์์ด๋์ด๋ฅผ ํ ๋๋ก, ๋ค์๊ณผ ๊ฐ์ด ๋ฌธ์ ๋ฅผ ์์ฐจ์ ์ผ๋ก ํ ์ ์์ต๋๋ค.
- ์ฃผ์ด์ง N๊ฐ์ ์ซ์๋ฅผ ์ฐจ๋ก๋๋ก ๋์ ํ์ฌ ์ ์ฅํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, { 5, 4, 3, 2, 1 } ์์๋ก ์ ๋ ฅ์ด ์ฃผ์ด์ง๋ฉด, { 5, 9, 12, 14, 15 }๋ก ๋ฐฐ์ด์ ์ ์ฅํฉ๋๋ค.
- ์ฃผ์ด์ง ๊ตฌ๊ฐ i, j์ ๋ํ์ฌ, arr[j] - arr[i-1]์ ์ถ๋ ฅํฉ๋๋ค.
- ๋ง์ฝ i = 1์ธ ๊ฒฝ์ฐ๋ผ๋ฉด, ์ฒ์ ~ j๊น์ง์ ๋์ ํฉ์ด๋ฏ๋ก, arr[j]๋ง ์ถ๋ ฅํด์ฃผ๋ฉด ๋ฉ๋๋ค.
โ๏ธ์์ค ์ฝ๋ ๋ฐ ๊ฒฐ๊ณผ
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cout.tie(NULL); cin.tie(NULL);
int N, M;
cin >> N >> M;
vector<int> accumulatedSum(N + 1);
cin >> accumulatedSum[1];
for (int i = 2; i <= N; i++)
{
int number;
cin >> number;
accumulatedSum[i] = accumulatedSum[i - 1] + number;
}
for (int loop = 0; loop < M; loop++)
{
int i, j;
cin >> i >> j;
int Xj = accumulatedSum[j];
int Xi = (i == 1) ? 0 : accumulatedSum[i - 1];
cout << Xj - Xi << "\n";
}
return 0;
}
728x90
๋ฐ์ํ
'Coding Test > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 2559๋ฒ | ์์ด (C++) (0) | 2023.08.27 |
---|---|
[BOJ] 16139๋ฒ | ์ธ๊ฐ-์ปดํจํฐ ์ํธ์์ฉ (C++) (1) | 2023.08.27 |
[BOJ] 10844๋ฒ | ์ฌ์ด ๊ณ๋จ ์ (C++) (0) | 2023.08.26 |
[BOJ] 3190๋ฒ | ๋ฑ (C++) (1) | 2023.08.26 |
[BOJ] 16198๋ฒ | ์๋์ง ๋ชจ์ผ๊ธฐ (C++) (0) | 2023.08.25 |