학습
시험

할 일 계획하기

난이도
BEGINNER

문제 설명

다양한 시간이 소요되는 여러 개의 작업(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개의 작업을 수행할 수 있으며 이 경우가 최대의 경우입니다.