๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/groom

[C++/groom] Lv.2 : ์žฅ๋งˆ

by xxilliant 2025. 4. 18.
728x90
๋ฐ˜์‘ํ˜•

 

https://level.goorm.io/exam/194982/%EC%9E%A5%EB%A7%88/quiz/1

 

๊ตฌ๋ฆ„LEVEL

๋‚œ์ด๋„๋ณ„ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ SW ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

level.goorm.io


๊ตฌ๋ฆ„ ๋ ˆ๋ฒจ 2 ๊ตฌํ˜„๋ฌธ์ œ.

 

๋ฒ”์œ„๊ฐ€ n์€ 1000, m์€ 100000๊นŒ์ง€๋ผ์„œ ์•„์Šฌ์•„์Šฌํ•˜๊ฒŒ ์ด์ค‘๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค ใ…‹ใ…‹

๋‹จ์ˆœ ๊ตฌํ˜„์ด์ง€๋งŒ ๊ณ ๋ คํ•ด์•ผํ•  ์‚ฌํ•ญ์ด ๋งŽ์•„์„œ ๊นŒ๋‹ค๋กœ์› ๋‹ค!

 

 

๋‚˜์˜ ํ’€์ด

#include <iostream>
#include <vector>
using namespace std;
int main() {
	int n, m, tmp1, tmp2;
	vector<int> ori_list;
	vector<int> k_list;
	vector<int> rain_in_2days;
	vector<pair<int,int>> rain_place;
	// ์ž…๋ ฅ ๋กœ์ง
	cin >> n >> m;
	for(int i=0; i<n; ++i) {
		cin >> tmp1;
		ori_list.push_back(tmp1);
		k_list.push_back(tmp1);
		rain_in_2days.push_back(0);
	}
	for(int i=0; i<m; ++i) {
		cin >> tmp1 >> tmp2;
		rain_place.push_back({tmp1, tmp2});
	}
	
	int day = 0;
	while(day < m){
		day++; // 1์ผ์ฐจ๋ถ€ํ„ฐ ์‹œ์ž‘
		int s = rain_place[day-1].first - 1;
		int e = rain_place[day-1].second - 1;
		for(int i=0; i<n; ++i) {
			if(rain_in_2days[i]>0) rain_in_2days[i]--; // ๋น„์˜จ์ง€ ํ•˜๋ฃจ ์ง€๋‚˜๋ฉด -1
		}
	
		for(int i=s; i<=e; ++i){
			k_list[i]++;
			rain_in_2days[i] = 3; // ๋น„ 1์ผ์งธ=3, 2์ผ์งธ=2, 3์ผ์งธ=1
		}
		if(day%3==0){
			for(int i=0; i<n; ++i) {
				if(rain_in_2days[i]>0){
					if(k_list[i] > ori_list[i]) k_list[i]--;
				}
			}
		}
	}

	for(int i=0; i<n; ++i) {
		cout << k_list[i] << " ";
	}
	
	return 0;
}

728x90
๋ฐ˜์‘ํ˜•