カメラ
3890 ワード
1.質問
質問リンク
説明:
高速道路を走るすべての車両が高速道路を使用していると同時に、管制カメラを一度に見られるようにカメラを設置したいと思っています.
高速道路を走行する車両の経路をパラメータとして指定すると、すべての車両が一度に取り締まりカメラに遭遇したときに少なくとも何台のカメラを取り付ける必要があるかを返す解関数が完了する.
せいげんじょうけん
routesreturn[[-20,15], [-14,-5], [-18,-13], [-5,-3]]2
I/O例説明
-5時にカメラを設置すると、2台目、4台目の車がカメラに遭遇します.
-15時にカメラを設置すると、1台目と3台目の車がカメラに遭遇します.
2.解答
このような問題は通常最適な解を求める時、
取り締まりカメラを一番左に貼るか、一番右に貼るかで、感覚が見つかります.
しかし、常識的にはできるだけ右側に取り付けるべきで、最適な年が保障されていることを直感的に知ることができます.
そうすれば、できるだけ多くの車両を監視することができます.
私の説明の仕方はこうです.
3.完全なコード
function solution(routes) {
let ans = 0;
let last_position = -30001; // 마지막으로 설치한 단속 카메라 위치
// 1. 차량들을 고속도로에서 나간 지점을 기준으로 오름차순 정렬합니다.
routes.sort((a, b) => a[1] - b[1]);
// 2. 앞에서부터 보며, 단속 카메라가 없는 구간을 만나면 해당 차량이 나간 지점에 단속 카메라를 설치합니다.
routes.forEach((route) => {
if (route[0] > last_position) {
last_position = route[1];
ans++;
}
});
return ans;
}
Reference
この問題について(カメラ), 我々は、より多くの情報をここで見つけました https://velog.io/@front/프로그래머스-단속카메라テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol