Manduss life
[Python][Greedy?] 단속카메라 - 프로그래머스 Lv.3 본문
[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/42884
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[알고리즘]
- routes를 진출 지점를 기준으로 정렬한다.
- 첫번째 차의 진출 지점을 camera를 설치한다.
- 두번째 차부터 다음을 반복한다.
- 마지막 camera 설치 지점보다 i번째 차의 진입 지점이 작다면, continue
- 그렇지 않다면 그 차의 진출 지점을 위치로 카메라 설치.
- 설치된 카메라 개수 출력
[느낀점]
- 처음엔 진입 지점을 기준으로 정렬하였는데, 실행결과는 통과하였지만, test case 모두 실패.
- 진입 지점을 기준으로 정렬할 시 예외 케이스 발견.
[코드]
def solution(routes):
answer = 0
routes_sorted = sorted(routes, key=lambda x:x[1])
cam_loc = [routes_sorted[0][1]]
for i, (start, end) in enumerate(routes_sorted[1:]):
if start <= cam_loc[-1] :
continue
cam_loc.append(end)
answer = len(cam_loc)
return answer
정확성 테스트
테스트 1 〉 | 통과 (0.02ms, 10.3MB) |
테스트 2 〉 | 통과 (0.04ms, 10.1MB) |
테스트 3 〉 | 통과 (0.04ms, 10.2MB) |
테스트 4 〉 | 통과 (0.04ms, 10.2MB) |
테스트 5 〉 | 통과 (0.04ms, 10.1MB) |
효율성 테스트
테스트 1 〉 | 통과 (0.45ms, 10.5MB) |
테스트 2 〉 | 통과 (0.28ms, 10.4MB) |
테스트 3 〉 | 통과 (0.95ms, 10.6MB) |
테스트 4 〉 | 통과 (0.04ms, 10.2MB) |
테스트 5 〉 | 통과 (1.11ms, 10.7MB) |
'전산 > Algorithm' 카테고리의 다른 글
[Python][DP] 등굣길 - 프로그래머스 (0) | 2023.08.06 |
---|---|
[Python] 1차 캐시 - 프로그래머스 / 2018 KAKAO BLIND RECRUITMENT (0) | 2023.07.31 |
[Python] 압축 - 프로그래머스 Lv.2 (0) | 2023.05.06 |
[Python][] 조이스틱 - 프로그래머스 Lv.2 (다시 풀기) (0) | 2023.04.02 |
[Python][BFS] 리코쳇 로봇 - 프로그래머스 Lv.2 (다시 풀기) (0) | 2023.04.02 |
Comments