https://school.programmers.co.kr/learn/courses/30/lessons/181188?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 요약
각 폭격 미사일의 x 좌표 범위 목록 targets이 매개변수로 주어질 때, 모든 폭격 미사일을 요격하기 위해 필요한 요격 미사일 수의 최솟값을 return한다.
풀이
target들끼리 겹치는 구간이 있다면 미사일을 한 번만 쏘면 된다. 반면, target들끼리 겹치는 구간이 없을 경우 별개의 미사일을 또 쏘아야 한다.
따라서 target의 e를 기준으로 오름차순 정렬한 뒤, 다음 target의 s 좌표가 e 좌표보다 같거나 크면 미사일을 따로 쏘아야 한다는 의미이다. 그러므로 필요한 미사일의 개수를 +1 해준다.
def solution(targets):
"""
미사일을 최소로 사용해 요격한다.
"""
# 정렬
targets.sort(key=lambda x: (x[1], x[0]))
result = 0
e = 0
for target in targets:
if target[0] >= e:
result += 1
_, e = target
return result
728x90
'알고리즘' 카테고리의 다른 글
[프로그래머스 두 원 사이의 정수 쌍] 파이썬 풀이 (0) | 2024.06.23 |
---|---|
[프로그래머스 보석 쇼핑] - 파이썬 풀이 (0) | 2023.06.02 |
[프로그래머스 불량 사용자] 파이썬 풀이 (0) | 2023.06.01 |
[백준 15686 치킨 배달] - 파이썬 풀이 (골드 5) (0) | 2023.05.22 |
[프로그래머스 프렌즈4블록] - 파이썬 풀이 (0) | 2023.05.17 |