코딩테스트/Python
[Programmers] Level 2. 요격 시스템
swwho
2025. 1. 18. 13:32
728x90
반응형
🔗 Problem Link
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
❔Thinking
- 개구간 (s, e)들이 주어질 때, 모든 구간을 통과하는 막대의 최소 개수를 반환한다.
- s나 e에서는 해당 구간을 통과할 수 없다.
💻Solution
def solution(targets):
answer = 0
targets = sorted(targets, key=lambda x: x[1])
e = 0
for i in range(len(targets)):
if targets[i][0] >= e:
answer += 1
e = targets[i][1]
return answer
🗝️keypoint
- 이 문제의 풀이 여부는, 모든 구간을 시작점이 아니라 끝점을 기준으로 정렬하는 데에 있다.
- 결과적으로, 구간을 하나씩 확인하면서 이전 구간의 끝점이 현재 구간의 시작점보다 크다면 (targets[i][0] >= e), 새로운 막대가 필요하다.