우당탕탕 개발일지

[그리디] 프로그래머스 level 3 단속카메라 (Python 파이썬) ⭐ 본문

알고리즘

[그리디] 프로그래머스 level 3 단속카메라 (Python 파이썬) ⭐

민아당긴아 2024. 10. 15. 19:45

💡문제 링크

결국 마지막까지 못풀고 다른 사람 풀이 본 문제..

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

💡문제 분석 요약

routes 리스트 안의 원소는 [차량의 고속도로 진입 지점, 차량의 진출 지점]으로 구성되어 있다.

예를 들어 원소가 [-5, -3]이면 차량이 -5 지점에서 고속도로에 들어온 뒤 -3에서 고속도로를 나갔다는 뜻.

모든 차량이 한 번은 단속용 카메라를 만나도록 하려면

최소 몇 대의 카메라를 설치해야 하는지 return하는 함수 작성

 

💡알고리즘 설계

1. 진출 지점 기준으로 정렬

2. 앞뒤 겹치는 부분 있는지 확인

 

💡코드(이자 다른 사람 풀이)

def solution(routes):
    routes.sort()
    answer = 1
    camera = routes[0]
    for r in routes[1:]:
        if camera[1] >= r[0]:
            camera = [r[0], min(r[1], camera[1])]
        else:
            camera = r
            answer += 1
    return answer

 

💡 느낀점 or 기억할정보

가끔 이렇게 단순하게 생각하면 되는데 단순하게 생각하기가 어려운 문제들도 있구나..싶었다.