[탐욕법] 단속카메라

yyeahh·2020년 9월 6일
0

프로그래머스

목록 보기
23/35

|| 문제설명 ||

  1. 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 한다.
  2. 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하라.
  • routes : 고속도로를 이동하는 차량의 경로
_ 차량의 대수는 1대 이상 10,000대 이하
_ routes : 차량의 이동 경로
	routes[i][0] : i번째 차량이 고속도로에 진입한 지점
    	routes[i][1] : i번째 차량이 고속도로에서 나간 지점
_ 차량의 진입/진출 지점에 카메라가 설치되어 있어도 카메라를 만난것으로 간주
_ 차량의 진입 지점, 진출 지점 : -30,000 이상 30,000 이하

|| 문제해결방법 ||

- A: 기존 좌표
- B: 새로운 좌표

1. 경우의 수

  • 포함 ( A > B )
    (같을 때는 제외, 비교할 필요가 없음 → 쓸데없는 시간,메모리를 증가시킴)
    A를 부모, B가 자식인 트리 생성

  • 겹침 ( A, B )
    A[0] >= B[1] && A[1] <= B[0] 일 때만 겹침 ( 0번째: 앞, 1번째: 뒤 )
    값을 겹치는 부분으로 교체
    ex) A = (-14, -5), B = (-15, -13) → A = (-14, -13)

  • 분리
    겹칠 때를 제외한 나머지 경우
    해당 레벨에 값을 추가, answer++

2.예시
routes : [[-20,15], [-14,-5], [-18,-13], [-5,-3]]


|| 코드 ||

0개의 댓글