-
[그리디] 단속 카메라코딩 테스트/프로그래머스 2023. 4. 3. 19:12
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/42884
문제 풀이
- routes에 대한 정렬을 진입,진출 중 어떤 것으로 할 지 선택해야함
- 진출로 잡아야 해당 차량이 이동하는 구간에서의 카메라 위치를 잡을 수 있음.
- 현재 차량의 진입 시점이 카메라보다 크다면 그 카메라는 지금의 차량을 잡을 수 없으므로 카메라를 하나 더 추가해야함
- 그 카메라의 위치는 현재 차량의 진입,진출을 모두 커버 가능해지므로 최대 범위인 진출로 일단 잡아둠.
- 3,4번 논리를 반복하면서 camera 수와 위치를 수정해주면 해결 되는 문제.
소스 코드
def solution(routes): n = len(routes) #자동차 갯수 answer = 1 routes.sort(key=lambda x:x[1]) #진출 시점 기준으로 정렬 camera = routes[0][1] #카메라 초기 값은 맨 첫 차량의 진출 시점 for i in range(1,n): s,e = routes[i] if camera<s: camera=e answer+=1 else: continue return answer print(solution([[-20,-15], [-14,-5], [-18,-13], [-5,-3]]))
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[연습 문제] 숫자 게임 (0) 2023.04.05 [우선순위 큐] 야근 지수 *** (0) 2023.04.03 [동적 계획법] 등굣길 (0) 2023.03.31 [DFS/BFS] 단어 변환 (0) 2023.03.30 [DFS/BFS] 네트워크 (0) 2023.03.30