문제 설명
다양한 시간이 소요되는 여러 개의 작업(tasks) 일정이 있습니다. 하나의 작업은 [시작 시각, 종료 시각] 쌍으로 주어집니다. 현재 진행 중인 작업이 있는 경우, 해당 작업이 끝나기 전에는 다른 작업을 시작할 수 없습니다. 단, 어떤 작업의 종료 시각과 다른 작업의 시작 시각이 같다면, 그 두 작업은 연달아 수행하는 것이 허용됩니다.
작업 목록 tasks가 주어질 때, 수행할 수 있는 최대 작업 개수를 반환하는 solution 함수를 작성하시오.
예를 들어, 아래와 같은 작업 일정이 있다고 가정합시다.
- [1, 3] (작업 A)
- [2, 5] (작업 B)
- [4, 6] (작업 C)
- [5, 7] (작업 D)
- [6, 9] (작업 E)
이 경우, A(1, 3) → C(4, 6) → E(6, 9) 와 같은 작업은 수행할 수 있지만 B(2, 5) → C(4, 6) 와 같은 작업은 수행할 수 없습니다.
제한 사항
tasks의 길이는 1 이상 100,000 이하입니다.tasks의 각 원소는[시작 시각, 종료 시각]형태이며, 각 시각은 모두 0 이상 1,000,000,000 이하의 정수입니다.tasks의 각 원소에 대해종료 시각은 항상시작 시각보다 큽니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | tasks | return |
|---|---|---|
| 1 | [[1,3],[2,5],[4,6],[5,7],[6,9]] | 3 |
| 2 | [[5,7],[1,4],[3,5],[2,3]] | 3 |
| 3 | [[1,2],[3,4],[4,5],[2,3]] | 4 |
1번 테스트케이스 설명
첫 번째 작업(1,3) → 세 번째 작업(4,6) → 다섯 번째 작업(6,9)순서로 진행하면 총 3개의 작업을 수행할 수 있으며 이 경우가 최대의 경우입니다.
2번 테스트케이스 설명
네 번째 작업(2,3) → 세 번째 작업(3,5) → 첫 번째 작업(5,7)순서로 진행하면 총 3개의 작업을 수행할 수 있으며 이 경우가 최대의 경우입니다.
3번 테스트케이스 설명
첫 번째 작업(1,2) → 네 번째 작업(2,3) → 두 번째 작업(3,4) → 세 번째 작업(4,5)순서로 진행하면 총 4개의 작업을 수행할 수 있으며 이 경우가 최대의 경우입니다.