나의 풀이
def solution(routes):
routes.sort(key = lambda item : item[1])
camera = 0
min_spot = -30001
for start, finish in routes :
if start <= min_spot and finish>= min_spot :
continue
else :
min_spot = finish
camera += 1
return camera
- 차량이 고속도로에서 나간 지점을 오름차순으로 정렬한다.
- 이전 차량이 만난 카메라의 지점을 min_spot 으로 지정하고,
- 만약 현재 차량이 min_spot 을 만날 수 있다면 반복문을 넘어간다. ->
- if start <= min_spot and finish>= min_spot :
continue - 그렇지 않다면 내 차량이 마지막으로 빠져나가는 지점을 min_spot 으로 지정하고, camera 개수를 하나 더 늘린다.
+ 왜 level 3 인지 모르겠는 문제...? 그리디로 분류된 문제 중에 가장 쉬웠던 것 같다.
'알고리즘 > 그리디' 카테고리의 다른 글
[이것이 코딩테스트다] 곱하기 혹은 더하기 - 파이썬(python) (0) | 2022.09.29 |
---|---|
[이것이 코딩테스트다] 모험가 길드 - 파이썬(python) (0) | 2022.09.29 |
[프로그래머스] 섬 연결하기 - 파이썬(python) (0) | 2022.09.17 |
[프로그래머스] 구명보트 - 파이썬(python) (0) | 2022.09.16 |
[프로그래머스] 큰 수 만들기 - 파이썬(pytyon) (0) | 2022.09.16 |
댓글