본문 바로가기
IT 이야기/알고리즘 공부

[Programmers] 단속카메라

by Dblog 2020. 11. 19.
728x90


파이썬을 사용하였습니다.


주어진 예시를 그림처럼 나타낼 수 있습니다.

겹치는 부분이 없는 부분은 카메라를 추가해야 합니다.

가장 왼쪽에서 출발하는 차량은 한번은 카메라에 찍혀야 하기 때문에 시작하는 차량의 범위내에 있는 차량들은
카메라를 추가하는 대상에서 제외 할 수 있습니다.

(노랑, 파랑, 초록) (빨강, 노랑) 두 개의 범위로 나뉘어 집니다.

이 부분을 고민하면 알고리즘은 간단하게 구현할 수 있습니다.


정답 코드

(코드는 간단하게 작성하였기 때문에 찬찬히 읽어보시기 바랍니다.)



def solution(routes):
    answer = 1

    routes  = sorted(routes,key=lambda x:x[0])

    length = routes[0][1]


    for i in range(len(routes)-1):
        if length > routes[i][1]:
            length = routes[i][1]

        if length < routes[i+1][0]:
            length = routes[i+1][1]
            answer += 1



    return answer
728x90

댓글