[프로그래머스, 파이썬] 단속카메라, Greedy

YuJangHoon·2022년 3월 5일
0
post-thumbnail

💡 문제 해결 아이디어

내가 생각한 아이디어

  1. "진출"지점에 대해서 오름차순으로 정렬한다.
  2. 기준 = -30001 (문제 제한사항을 고려함)
  3. cnt = 0
  4. for 경로 in 경로들:
    • 만약 경로의 진입지점이 기준보다 뒤에 있으면,
      • cnt += 1
      • 기준 = 경로의 진출지점
  5. return cnt

🛠 피드백

  • 진출지점에 대해서 오름차순으로 정렬해야, 진출지점에 카메라가 있다고 가정했을 때, 그 이후의 경로들의 진입지점이 진출지점보다 앞서면, 반드시 그 카메라에 단속된다고 장담할 수 있다.

💻 작성한 코드

def solution(routes):
	# 진출지점에 대해서 오름차순 정렬
    routes.sort(key=lambda x: x[1])
    # 기준은 제한사항 참조
    key = -30001
    # 필요한 카메라 수
    cnt = 0
    
    for route in routes:
    	# 기준(카메라)보다 진입지점이 뒤에 있으면
        if route[0] > key:
        	# 단속이 안되기에 카메라 하나 더 필요
            cnt += 1
            # 새로운 기준은 해당 경로의 진출지점(맨끝)
            key = route[1]
            
    return cnt
profile
HYU DataScience, ML Engineer - 산업기능요원(4급)

0개의 댓글