프로그래머스

프로그래머스 단속 카메라

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  # 설치한 카메라의 수 반환