나의 개발일지

[프로그래머스] Lv.3 단속 카메라 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.3 단속 카메라 [Python, 파이썬]

YoonJuHan 2023. 12. 27. 18:09
  • 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42884
  • 🔑 그리디, 정렬
    • 나간 지점을 기준으로 오름차순 정렬
    • [[-20, -15], [-14, -5], [-18, -13], [-5, -3]] → [[-20, -15], [-18, -13], [-14, -5], [-5, -3]] 
    • 초기값(camera)을 -30000보다 작은 값으로 초기화한다.
    • 현재 차량의 진입 지점이 카메라가 설치된 지점(camera) 보다 크면 나간 지점에 카메라 설치
      • 밑에 그림으로 봤을 때 카메라를 설치한 지점과 겹치지 않는 경우에 해당
    • 그림을 보면 이해하기 쉽다.
      • 빨간 막대가 카메라가 설치된 자리
      • 파란 막대는 차량이 이동한 거리

def solution(routes):
    answer = 0
    
    routes.sort(key=lambda x : x[1])    # 나간 지점을 기준으로 정렬

    camera = -99999            # -30000 보다 작은 값으로 초기화
    for route in routes:    
        if camera < route[0]:  # 현재 차량의 진입 지점이 카메라 설치 위치보다 크면
            camera = route[1]  # 나간 지점에 카메라 설치
            answer += 1
    
    return answer
Comments