매우 오랜만에 적는 알고리즘 포스팅이다~!
요즘 아주 스스로가 맘에 안들어 죽겠다,,
6,7,8월 정신 차리고 준비 해야 하는데,, 라고 생각만 하고 정작 제대로 안함
집에 있다보니까 역시 집중이 잘 안되서 그런 것 같은데 그러면서 나오지도 않음
no answer.
이제야 몸을 움직여서 집 앞 카페에 와서 평균 3시간 걸리던 알고리즘 풀이를 1시간 만에 해결했다ㅋㅋㅋㅋㅋㅋ 진짜 비효율 최고다,,
주저리도 그만하고 프로그래머스 greedy 의 마지막 문제 단속 카메라를 복습해보자!
 {
return route1[1] < route2[1];
}
int solution(vector<vector<int>> routes) {
int cameraAt = -30001;
vector<int> cameraLocation;
vector<vector<int>> routeByExit;
sort(routes.begin(), routes.end(), byExit);
routeByExit = routes;
for (int i = 0; i < routeByExit.size() ; ++i) {
if (routeByExit[i][0] > cameraAt){
cameraAt = routeByExit[i][1];
cameraLocation.push_back(cameraAt);
}else{
continue;
}
}
return cameraLocation.size();
}
기본적으로 진출 시점을 기준으로 하여 차량들을 탐색한다
기존의 camera 지점보다 진입 지점이 작거나 같은 차량이라면 기존 카메라에 배당하고, 기존의 camera 지점보다 이후에 진입한 차량이라면 해당 차량의 진출 시점으로 새롭게 camera 위치를 변경해 탐색을 반복하는 간단한 방식이다
차량의 진입 시점은 -30,000 부터여서 기본 카메라 위치는 -30,001로 초기화 하였다.
풀고나니 그리 어렵지 않은 문제인데 왜 이상하게 두개의 배열을 만들어 난리를 쳤을까,, 싶다 ㅜ
6월안에 30 문제 solve 가 목표인데,,! 일단 이번주 10개 해결 가본드아!