프로그래머스
프로그래머스 단속 카메라
juwanseo
2025. 3. 27. 17:29
def solution(routes):
answer = 0 # 카메라 수를 셀 변수
routes.sort(key=lambda x: x[1]) # 차량 이동 경로의 끝 지점을 기준으로 오름차순 정렬
leng = len(routes) # routes의 길이
checked = [0] * leng # 각 차량이 카메라에 의해 커버되었는지 확인하는 배열
for i in range(leng):
if checked[i] == 0: # 만약 해당 차량이 아직 카메라에 의해 커버되지 않았다면
camera = routes[i][1] # 현재 차량의 종료 지점에 카메라 설치
answer += 1 # 카메라 수 증가
for j in range(i + 1, leng): # 이후의 차량들을 확인
# 차량 j의 시작 지점이 카메라 설치 위치(camera) 내에 있으면
# 해당 차량은 카메라에 의해 커버되므로 checked 배열을 업데이트
if routes[j][0] <= camera <= routes[j][1] and checked[j] == 0:
checked[j] = 1 # 차량 j가 카메라에 의해 커버됨
return answer # 설치한 카메라의 수 반환