Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Packet Network
- SDK upgrade
- server
- mongoDB
- Spring Boot
- screencapture
- Google Refund
- Google Developer API
- react
- css framework
- java
- Git
- rpg server
- linux
- spread 연산자
- nodejs
- OverTheWire
- Camera Movement
- draganddrop
- Unity IAP
- springboot
- MySQL
- Digital Ocean
- docker
- express
- Camera Zoom
- Unity Editor
- --watch
- unity
- critical rendering path
Archives
- Today
- Total
우당탕탕 개발일지
[프로그래머스] Level 3. 단속 카메라 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42884
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
해결 방법
- 진출 지점이 앞부분인 차량순으로 정렬한다. (routes[a][1] < routes[b][1] )
- 맨 앞 차부터, 나갈때 단속카메라를 설치한다. 즉, routes[i][1] 부분에 감시카메라를 설치한다.
- 만약 현재 설치된 카메라지점안에 차량이 있다면, 즉, 진입부분이 카메라보다 앞에 있다면, 카메라를 설치할 필요가 없으므로 그냥 넘어간다.
- 만약 현재 카메라지점에 내 차량이 포함되지 않는다면 , 내 진출부분에 카메라를 설치한다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(vector<int>& a, vector<int>& b){
return a[1]<b[1];
}
int solution(vector<vector<int>> routes) {
int answer = 0;
sort(routes.begin(), routes.end(), compare);
int route = -99999;
for(int i=0; i<routes.size(); i++){
if(route < routes[i][0]){
answer ++;
route = routes[i][1];
}
}
return answer;
}
'Algorithm(c++) > Level 3' 카테고리의 다른 글
[프로그래머스] Level 3. 스티커 모으기 (0) | 2025.03.01 |
---|---|
[프로그래머스] Level 3. 기지국 설치 (0) | 2025.02.27 |
[프로그래머스] Level 3 . 숫자 게임 (1) | 2025.02.25 |
[프로그래머스] Level 3. 최고의 집합 (0) | 2025.02.25 |
[프로그래머스] Level 3. 이중 우선순위 큐 (1) | 2025.02.23 |