[๋ฐฑ์ค€/C++] ๐Ÿ”ด2042๋ฒˆ: ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ

๋ž€์ง€ยท2021๋…„ 9์›” 30์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
9/13

๋ฌธ์ œ

์–ด๋–ค N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ค‘๊ฐ„์— ์ˆ˜์˜ ๋ณ€๊ฒฝ์ด ๋นˆ๋ฒˆํžˆ ์ผ์–ด๋‚˜๊ณ  ๊ทธ ์ค‘๊ฐ„์— ์–ด๋–ค ๋ถ€๋ถ„์˜ ํ•ฉ์„ ๊ตฌํ•˜๋ ค ํ•œ๋‹ค. ๋งŒ์•ฝ์— 1,2,3,4,5 ๋ผ๋Š” ์ˆ˜๊ฐ€ ์žˆ๊ณ , 3๋ฒˆ์งธ ์ˆ˜๋ฅผ 6์œผ๋กœ ๋ฐ”๊พธ๊ณ  2๋ฒˆ์งธ๋ถ€ํ„ฐ 5๋ฒˆ์งธ๊นŒ์ง€ ํ•ฉ์„ ๊ตฌํ•˜๋ผ๊ณ  ํ•œ๋‹ค๋ฉด 17์„ ์ถœ๋ ฅํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ƒํƒœ์—์„œ ๋‹ค์„ฏ ๋ฒˆ์งธ ์ˆ˜๋ฅผ 2๋กœ ๋ฐ”๊พธ๊ณ  3๋ฒˆ์งธ๋ถ€ํ„ฐ 5๋ฒˆ์งธ๊นŒ์ง€ ํ•ฉ์„ ๊ตฌํ•˜๋ผ๊ณ  ํ•œ๋‹ค๋ฉด 12๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.
๋ฌธ์ œ๋ณด๊ธฐ

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 1,000,000)๊ณผ M(1 โ‰ค M โ‰ค 10,000), K(1 โ‰ค K โ‰ค 10,000) ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. M์€ ์ˆ˜์˜ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋Š” ํšŸ์ˆ˜์ด๊ณ , K๋Š” ๊ตฌ๊ฐ„์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ํšŸ์ˆ˜์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N+1๋ฒˆ์งธ ์ค„๊นŒ์ง€ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  N+2๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N+M+K+1๋ฒˆ์งธ ์ค„๊นŒ์ง€ ์„ธ ๊ฐœ์˜ ์ •์ˆ˜ a, b, c๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, a๊ฐ€ 1์ธ ๊ฒฝ์šฐ b(1 โ‰ค b โ‰ค N)๋ฒˆ์งธ ์ˆ˜๋ฅผ c๋กœ ๋ฐ”๊พธ๊ณ  a๊ฐ€ 2์ธ ๊ฒฝ์šฐ์—๋Š” b(1 โ‰ค b โ‰ค N)๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ c(b โ‰ค c โ‰ค N)๋ฒˆ์งธ ์ˆ˜๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ชจ๋“  ์ˆ˜๋Š” -263๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 263-1๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ K์ค„์— ๊ฑธ์ณ ๊ตฌํ•œ ๊ตฌ๊ฐ„์˜ ํ•ฉ์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹จ, ์ •๋‹ต์€ -263๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 263-1๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

์˜ˆ์ œ


์•„์ด๋””์–ด

๋ฐฐ์—ด์„ ๋™์ ํ• ๋‹นํ•˜์—ฌ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. a, b, c๊ฐ€ ์ž…๋ ฅ๋  ๋•Œ a์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ์™€ 2์ธ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ„์–ด ๊ตฌํ˜„ํ•œ๋‹ค.

์ฝ”๋“œ

/* ์‹œ๊ฐ„ ์ดˆ๊ณผ */
#include <iostream>
using namespace std;

int main() {
	int N, M, K;
	int num;
	cin >> N >> M >> K;
	int* arr = new int[N];
	for(int i = 0; i < N; i++) {
		cin >> num;
		arr[i] = num;
	}
	int a, b, c;
	for (int i = 0; i < M + K; i++) {
		cin >> a >> b >> c;
		int sum = 0;
		if (a == 1) {
			arr[b - 1] = c;
		}
		else if (a == 2) {
			for (int i = b; i <= c; i++) {
				sum += arr[i -1];
			}
			cout << sum << "\n";
		}
	}
	return 0;
}

์‹œํ–‰์ฐฉ์˜ค

์‹œ๊ฐ„์ดˆ๊ณผ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

profile
์ฝคํ“จํƒ€๊ณตํ•™๊ณผ

0๊ฐœ์˜ ๋Œ“๊ธ€