상세 컨텐츠

본문 제목

[Softeer] GBC (C++)

PROGRAMMING/Algorithm

by koharin 2023. 8. 12. 15:45

본문

728x90
반응형

N,M이 최대 100이므로, 구간을 인덱스로 속도 제한을 값으로 넣는 배열을 만든다.
1~100이므로 0은 사용하지 않도록 크기가 101인 배열을 만들었다.
이후 테스트하는 정보를 입력으로 받으면, 테스트하는 속도가 각 구간에서 제한 속도를 넘으면 기존 result 값과 현재 넘는 값을 비교하여 가장 큰 max 값을 저장한다.
처음에는 모든 제한 속도를 넘는 값을 vector에 저장하고, 그 중에서 max_element를 마지막에 구해서 출력하도록 했는데, 2개의 테스트케이스에서 런타임 에러가 발생해서 앞선 방식으로 결과를 구했다.

#include <iostream>
#include <vector>
#include<algorithm>

using namespace std;

int main(int argc, char** argv)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int N,M;
	vector<pair<int, int>> input;
	int test[101]={0,};
	vector<int> result;
	int re=0;

	cin >> N >> M;
	int now=1;
	for(int i=0; i<N; i++){
		int in_length, in_speed;
		cin >> in_length >> in_speed;

		for(int j=now; j < now+in_length; j++){
			test[j] = in_speed; 
		}
		now += in_length;
	}

	//for(int i=1; i<101; i++) cout << test[i] << " ";
	now=1;
	for(int i=0; i<M; i++){
		int test_length, test_speed;
		cin >> test_length >> test_speed;
		for(int j=now; j<now+test_length; j++){
			if(test_speed > test[j]){ 
				re=max(re, test_speed-test[j]);
			}
		}
		now += test_length;
	}
	//for(int num : result) cout << num << endl;
	//cout << *max_element(result.begin(), result.end());
	cout << re << endl;

	return 0;
}

 

 
 

728x90
반응형

관련글 더보기