포스트

[ 프로그래머스 ] 단속카메라

문제


https://school.programmers.co.kr/learn/courses/30/lessons/42884

풀이


고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는 지를 구하는 문제로, 탐욕법을 활용, 진출 위치를 기준으로 정렬하여 순차적으로 카메라를 설치한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool cmd(vector<int> a, vector<int> b)
{
    return(a[1] < b[1]);
}

int solution(vector<vector<int>> routes) 
{
    int answer = 0;

    vector<vector<int>> mod_route = routes;

    sort(mod_route.begin(), mod_route.end(), cmd);
    //진출기준

    int camera = -30001;

    for (int i = 0; i < mod_route.size(); i++)
    {
        if (mod_route[i][0] > camera)
        {
            answer++;
            camera = mod_route[i][1];
        }
    }
    return answer;
}


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.