각 간격이 [시작, 종료]와 같은 간격 목록이 있다고 가정합니다. 이는 간격(포함)의 시작 및 종료 시간을 나타냅니다. 이들의 교차점, 즉 주어진 모든 간격 내에 있는 간격을 찾아야 합니다.
따라서 입력이 [[10, 110],[20, 60],[25, 75]]와 같으면 출력은 [25, 60]
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- start, end :=간격 목록에서 마지막 요소를 삭제한 후 간격
- 간격이 비어 있지 않은 동안 수행
- start_temp, end_temp :=간격 목록에서 마지막 요소를 삭제한 후 간격
- start :=시작의 최대값, start_temp
- end :=end_temp의 최소값
- 간격 반환 [시작, 종료]
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, intervals): start, end = intervals.pop() while intervals: start_temp, end_temp = intervals.pop() start = max(start, start_temp) end = min(end, end_temp) return [start, end] ob = Solution() intervals = [[10, 110],[20, 60],[25, 75]] print(ob.solve(intervals))
입력
[[10, 110],[20, 60],[25, 75]]
출력
[25, 60]