Skip to content

Commit 82ad8e1

Browse files
committed
[level 3] Title: 단속카메라, Time: 0.88 ms, Memory: 9.59 MB -BaekjoonHub
1 parent cf26bc9 commit 82ad8e1

2 files changed

Lines changed: 91 additions & 0 deletions

File tree

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# [level 3] 단속카메라 - 42884
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42884)
4+
5+
### 성능 요약
6+
7+
메모리: 9.59 MB, 시간: 0.88 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 탐욕법(Greedy)
12+
13+
### 채점결과
14+
15+
정확성: 50.0<br/>효율성: 50.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2025년 05월 18일 12:05:20
20+
21+
### 문제 설명
22+
23+
<p>고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다.</p>
24+
25+
<p>고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요.</p>
26+
27+
<p><strong>제한사항</strong></p>
28+
29+
<ul>
30+
<li>차량의 대수는 1대 이상 10,000대 이하입니다.</li>
31+
<li>routes에는 차량의 이동 경로가 포함되어 있으며 routes[i][0]에는 i번째 차량이 고속도로에 진입한 지점, routes[i][1]에는 i번째 차량이 고속도로에서 나간 지점이 적혀 있습니다.</li>
32+
<li>차량의 진입/진출 지점에 카메라가 설치되어 있어도 카메라를 만난것으로 간주합니다.</li>
33+
<li>차량의 진입 지점, 진출 지점은 -30,000 이상 30,000 이하입니다.</li>
34+
</ul>
35+
36+
<p><strong>입출력 예</strong></p>
37+
<table class="table">
38+
<thead><tr>
39+
<th>routes</th>
40+
<th>return</th>
41+
</tr>
42+
</thead>
43+
<tbody><tr>
44+
<td>[[-20,-15], [-14,-5], [-18,-13], [-5,-3]]</td>
45+
<td>2</td>
46+
</tr>
47+
</tbody>
48+
</table>
49+
<p><strong>입출력 예 설명</strong></p>
50+
51+
<p>-5 지점에 카메라를 설치하면 두 번째, 네 번째 차량이 카메라를 만납니다.</p>
52+
53+
<p>-15 지점에 카메라를 설치하면 첫 번째, 세 번째 차량이 카메라를 만납니다.</p>
54+
55+
56+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import heapq
2+
3+
def solution(routes:list) -> int:
4+
'''
5+
args
6+
routes (list[list[int]]): [[in_distance, out_distance]]
7+
return (int): 모든 차량을 단속가능한 최소 단속카메라 갯수
8+
'''
9+
routes.sort(key=lambda x:x[1])
10+
cctv_latedist = -30001
11+
cnt = 0
12+
13+
for i,o in routes:
14+
if i > cctv_latedist:
15+
cnt += 1
16+
cctv_latedist = o
17+
18+
return cnt
19+
20+
# heapq.heapify(routes)
21+
# inplace = []
22+
# cnt = 0
23+
24+
# for i in range(len(routes)):
25+
# in_dist, out_dist = heapq.heappop(routes)
26+
27+
# if inplace and in_dist >= inplace[0][0]:
28+
# cnt += 1
29+
30+
# while inplace and in_dist >= inplace[0][0]:
31+
# heapq.heappop(inplace)
32+
33+
# heapq.heappush(inplace, (out_dist, in_dist))
34+
35+
# return cnt

0 commit comments

Comments
 (0)