[문제]
https://programmers.co.kr/learn/courses/30/lessons/42884
[풀이]
차량 이동경로를 sort 함수를 사용해 오름차순으로 정렬한다.
첫번째 이동경로의 진출 지점을 CCTV의 위치로 초기화
두번째 이동경로부터 마지막 이동경로까지
현재 이동경로의 진출 지점이 CCTV의 위치보다 앞에 있는 경우 => CCTV의 위치만 update
현재 이동경로의 진입 지점이 CCTV의 위치보다 뒤에 있는 경우 => CCTV의 위치 update, CCTV 설치 갯수 1 증가.
[코드]
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<vector<int>> routes) {
int answer = 1;
sort(routes.begin(), routes.end());
int pos = routes[0][1];
for(int i=1;i<routes.size();i++){
if(routes[i][1] < pos) pos = routes[i][1];
else if(routes[i][0] > pos){
answer++;
pos = routes[i][0];
}
}
return answer;
}
진짜 간단하게 풀 수 있는 문제인데 처음에 너무 복잡하게 생각했다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 키패드 누르기(C++) (0) | 2021.04.18 |
---|---|
[프로그래머스] 소수 찾기 (0) | 2020.11.10 |
[프로그래머스] 큰 수 만들기 (0) | 2020.11.10 |
[프로그래머스]방문 길이 (0) | 2020.10.13 |
[프로그래머스] NULL 처리하기 (0) | 2020.09.24 |