[level 3] Title: 단속카메라, Time: 0.88 ms, Memory: 10.5 MB -BaekjoonHub

This commit is contained in:
SSUM
2025-03-07 23:18:19 +09:00
parent 5137936552
commit 6c45265468
2 changed files with 71 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
# [level 3] 단속카메라 - 42884
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42884)
### 성능 요약
메모리: 10.5 MB, 시간: 0.88 ms
### 구분
코딩테스트 연습 > 탐욕법Greedy
### 채점결과
정확성: 50.0<br/>효율성: 50.0<br/>합계: 100.0 / 100.0
### 제출 일자
2025년 03월 07일 23:18:16
### 문제 설명
<p>고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다.</p>
<p>고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요.</p>
<p><strong>제한사항</strong></p>
<ul>
<li>차량의 대수는 1대 이상 10,000대 이하입니다.</li>
<li>routes에는 차량의 이동 경로가 포함되어 있으며 routes[i][0]에는 i번째 차량이 고속도로에 진입한 지점, routes[i][1]에는 i번째 차량이 고속도로에서 나간 지점이 적혀 있습니다.</li>
<li>차량의 진입/진출 지점에 카메라가 설치되어 있어도 카메라를 만난것으로 간주합니다.</li>
<li>차량의 진입 지점, 진출 지점은 -30,000 이상 30,000 이하입니다.</li>
</ul>
<p><strong>입출력 예</strong></p>
<table class="table">
<thead><tr>
<th>routes</th>
<th>return</th>
</tr>
</thead>
<tbody><tr>
<td>[[-20,-15], [-14,-5], [-18,-13], [-5,-3]]</td>
<td>2</td>
</tr>
</tbody>
</table>
<p><strong>입출력 예 설명</strong></p>
<p>-5 지점에 카메라를 설치하면 두 번째, 네 번째 차량이 카메라를 만납니다.</p>
<p>-15 지점에 카메라를 설치하면 첫 번째, 세 번째 차량이 카메라를 만납니다.</p>
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

View File

@@ -0,0 +1,15 @@
def solution(routes):
# 종료 지점을 기준으로 정렬합니다.
routes.sort(key=lambda x: x[1])
count = 0 # 설치한 카메라 수
camera = -30001 # 초기 카메라 위치 (최소 진입 지점보다 작은 값으로 설정)
for s, e in routes:
# 현재 차량의 진입 지점이 현재 카메라 위치보다 크다면,
# 현재 카메라로 커버할 수 없으므로, 새로운 카메라를 해당 차량의 진출 지점에 설치합니다.
if s > camera:
count += 1
camera = e
return count