활동 선택 문제 계산기
시작·끝 시각 목록에서 겹치지 않게 가장 많이 고르는 조합을 찾습니다. 끝나는 시각이 이른 것부터 고르는 탐욕이 왜 최적인지, 다른 기준은 왜 지는지 세 방식을 나란히 돌려 보여 줍니다.
활동 (한 줄에 «이름 시작 끝»)
«회의 9:00 10:30» 처럼 적습니다. 이름은 없어도 되고, 시각 대신 «1 4» 같은 숫자를 써도 됩니다. #으로 시작하는 줄은 건너뜁니다.
끝나는 시각이 이른 것부터 골랐을 때
5개
이 답이 최적입니다 · 전체 8개 중
| 순서 | 활동 | 구간 | 판정 |
|---|---|---|---|
| 1 | 기획회의 | 9:00~10:30 | 고름 |
| 2 | 면접 | 10:00~11:00 | 기획회의(9:00~10:30)과 겹칩니다 |
| 3 | 주간점검 | 10:30~11:30 | 고름 |
| 4 | 코드리뷰 | 11:30~12:30 | 고름 |
| 5 | 외부미팅 | 11:00~13:00 | 주간점검(10:30~11:30)과 겹칩니다 |
| 6 | 교육 | 13:00~16:00 | 고름 |
| 7 | 1on1 | 15:30~16:00 | 교육(13:00~16:00)과 겹칩니다 |
| 8 | 회고 | 16:00~17:00 | 고름 |
계산 방법
- 1활동을 한 줄에 하나씩 «이름 시작 끝»으로 적습니다. 9:00 10:30처럼 시각으로 써도, 1 4처럼 숫자로 써도 됩니다.
- 2고르는 기준을 바꿔 가며 개수가 어떻게 달라지는지 봅니다.
- 3막대 그림에서 어떤 활동이 뽑혔는지 확인합니다.
- 4판정 표에서 뽑히지 않은 활동이 무엇과 겹쳤는지 봅니다.
자주 묻는 질문
끝나는 시각이 이른 것부터 고르면 됩니다. 남은 활동 중 끝이 가장 이른 것을 고르고, 그것과 겹치는 것을 버리고, 다시 되풀이합니다. 이 방식이 최대 개수를 낸다는 것이 증명되어 있습니다.
교환 논증으로 증명합니다. 어떤 최적해가 있다고 할 때 그 첫 활동을 «끝이 가장 이른 활동»으로 바꿔치기해도 뒤에 오는 활동들과 여전히 겹치지 않습니다. 끝이 더 이르거나 같기 때문입니다. 개수가 그대로이므로 끝이 가장 이른 것을 포함하는 최적해가 반드시 존재하고, 나머지에 같은 논증을 되풀이하면 됩니다.
최적이 아닙니다. 짧지만 두 활동의 경계에 걸친 것 하나가 양쪽을 동시에 죽일 수 있습니다. [0,5] [4,6] [5,10]에서 가장 짧은 [4,6]을 먼저 고르면 1개밖에 못 고르지만, 끝 기준으로 고르면 [0,5]와 [5,10] 2개를 고릅니다.
길이가 긴 활동 하나가 짧은 여럿을 통째로 막기 때문입니다. [0,10] [1,2] [3,4]에서 시작이 가장 이른 [0,10]을 고르면 나머지가 모두 겹쳐 1개로 끝나지만, 끝 기준으로는 [1,2]와 [3,4] 2개를 고릅니다.
그것은 다른 문제입니다. 모두 배정하되 방 수를 최소로 하는 문제의 답은 «한 시점에 동시에 겹치는 최대 개수»입니다. 이 계산기도 함께 내 주며, 겹치는 최대 개수만큼 방을 두면 모든 활동을 배정할 수 있습니다.
겹치지 않은 것으로 봅니다. 10시에 끝나는 회의와 10시에 시작하는 회의는 이어서 할 수 있습니다. 이동이나 정리 시간이 필요하다면 끝 시각에 그만큼을 더해서 넣으면 됩니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 모든 활동의 값어치가 같다고 봅니다. 활동마다 중요도가 다르면 «개수»가 아니라 «값의 합»을 최대로 하는 문제가 되고, 그때는 탐욕이 아니라 동적 계획법(가중 구간 스케줄링)을 써야 합니다.
- 활동은 40개까지 넣을 수 있습니다.
- 시각은 24시를 넘겨 적어도 됩니다(예: 26:00은 다음 날 새벽 2시). 다만 날짜는 다루지 않으므로 여러 날에 걸친 일정은 분 단위 숫자로 바꿔 넣어야 합니다.
- 같은 개수를 내는 조합이 여럿일 수 있습니다. 이 계산기는 끝이 이른 것을 먼저 고른 조합 하나를 보여 줍니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.