컴퓨터과학 2023. 3. 2. 20:10

https://softeer.ai/practice/info.do?idx=1&eid=584 

 

Softeer

연습문제를 담을 Set을 선택해주세요. 취소 확인

softeer.ai

#include<iostream>
#include<vector>

using namespace std;
struct ele{
	int speed;
	int line;
};

int main(int argc, char** argv)
{
	//글로벌 비즈니스 센터 
	//지하 7층, 지상 105층, 높이 570m
	//0m~100m
	// 빌딩에서 운영되는 엘베 n 개 구간으로 나뉘며 해당 구간의 제한 속도가 주어짐
	// 구간의 총합은 100m 이며 각 구간별 구간의 길이와 제한 속도 모두 양의 정수로 주어짐

	//구간 3 엘베 n 개 구간
	//첫번째 구간의 길이  50m 이고 제한 속도 50m/s
	//두번쨰 구간의 길이 40m 이고 제한 속도 40m/s
    //세번째 구간의 길이 10m 이고 제한속도 30m/s

	//제한 속도를 벗어나면 서버에 초과한만크의 속도가 로그에 남는다
	//불행하게도 현재 서버 off 상태 광우는 서버의 데이터를 받아볼수 없음
	// 임의의 구간의 길이와 속도를 정하여 시범운행할때, 가장 제한속도가 크게 벗어난 값을 스스로 구해야함

	//m개의 구간을 검사하다할때
	/*
	▶ 첫 번째 구간의 운행 길이는 60m 이고 속도는 76m/s
	▶ 두 번째 구간의 운행 길이는 18m 이고 속도는 28m/s
	▶ 세 번째 구간의 운행 길이는 22m 이고 속도는 50m/s
	제한속도를 벗어나 가장 차이가 큰속도를 구해보자
	*/
     //첫번째 구간 50m까지에서 제한속도와 실제 운행 속도를 비교했을때
   
   int N,M;
   cin>>N>>M;
   vector<ele> test;
   vector<ele> live;

   for (int i=0;i<N;i++){
	int line;
	int speed;
     cin>>line>>speed;
	 ele tmp;
	 tmp.line=line;
	 tmp.speed=speed;
	 test.push_back(tmp);
   }

   for(int i=0;i<M;i++){
	 int line;
	 int speed;
	 cin>>line>>speed;
	 ele tmp;
	 tmp.line=line;
	 tmp.speed=speed;
	 live.push_back(tmp);
   }
   /*
50 50
40 40
10 30

60 76
18 28
22 50
   */
   int livecount=0;
   int modline=live[0].line;
   int modspeed=0;

   int testcount=0;
   int testmodline=test[0].line;
   int testmodspeed=test[0].speed;
   int compare=0;
   while(1){
	
	modline=modline-testmodline;
	modspeed=live[livecount].speed-test[testcount].speed;
//	cout<<modline<<",";
//	cout<<testmodline<<endl;
//	cout<<modspeed;
	if(compare<=modspeed){
		compare=modspeed;
	}
	if(modline<0){
	   livecount++;
	   testmodline=modline*-1;
	   modline=live[livecount].line;

	}else if(modline>0){
		testcount++;
		testmodline=test[testcount].line;
	}else if(modline==0){
		testcount++;
		livecount++;
		modline=live[livecount].line;
		testmodline=test[testcount].line;

	}

	if(livecount>=M||testcount>=N){
		break;
	}

   }

	cout<<compare;

	return 0;
}