코딩 테스트/Level 3
단속카메라 ⁂
컴닥
2020. 9. 23. 07:48
반응형
단속카메라
탐욕법(Greedy)
1720명 완료
https://programmers.co.kr/learn/courses/30/lessons/42884
코딩테스트 연습 - 단속카메라
[[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2
programmers.co.kr
시간제한이 없다면..
def solution(routes):
cameras = set()
while routes:
all_case = {}
for route in routes:
for i in range(min(route), max(route) + 1):
all_case[i] = all_case.get(i, 0) + 1
max_ = max(all_case.values())
for k, v in all_case.items():
if v == max_:
cameras.add(k)
temp = []
for each in routes:
if min(each) <= k <= max(each):
temp.append(each)
for each in temp:
routes.remove(each)
break
return len(cameras)
이렇게 반복으로 풀 수 있겠지만..
근데 비싼 컴퓨터 샀으면..
이렇게 풀어야지.. ㅠ,.ㅠ 나의 머리는 소중한데...
def solution(routes):
camera = 30001
answer = 0
routes.sort(reverse=True)
for start, end in routes:
if end < camera:
camera = start
answer += 1
return answer
def solution(routes):
camera = -30001
answer = 0
routes.sort(key=lambda x: x[1])
for start, end in routes:
if start > camera:
camera = end
answer += 1
return answer
반응형