욤미의 개발일지

[Programmers] 단속카메라 (Python) 본문

Coding Test/프로그래머스

[Programmers] 단속카메라 (Python)

욤미 2023. 4. 21. 20:12
728x90
반응형
 

프로그래머스

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

programmers.co.kr

문제

  • 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다.
  • 고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요.

구현

# 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇대의 카메라를 설치해야하는지
def solution(routes):
    routes.sort() # 들어온 지점에 따라 오름차순 정렬
    answer = 1 # 카메라 개수
    start, end = routes[0][0], routes[0][1]
    for i in routes[1:]:
        if start <= i[0] <= end:
            start = i[0] # 범위안에 있으면 시작점을 바꿔줌
            end = min(end, i[1])
        else:
            start, end = i[0], i[1]
            answer += 1 # 범위 안에 없기때문에 카메라 추가
    return answer

다른 풀이

# 역순으로 정렬해서 풀이
def solution(routes):
    answer = 0
    routes.sort(key=lambda x: x[0], reverse=True) 
    camera = 30001 
    print(routes)
    for route in routes:
        print(camera, route[1])
        if camera > route[1]:
            answer += 1
            camera = route[0]
    return answer
728x90
반응형

'Coding Test > 프로그래머스' 카테고리의 다른 글

[Programmers] 큰 수 만들기 (Python)  (0) 2023.04.21
[Programmers] 문자열 압축 (Python)  (0) 2023.04.21
Comments