마감시한 작업 스케줄링 계산기
작업마다 마감시한과 이익을 넣으면 그리디 알고리즘으로 이익의 합이 최대가 되는 작업 조합과 슬롯 배정을 계산합니다.
작업 목록 (한 줄에 «이름 마감시한 이익»)
예: «J1 2 100» — 마감시한 2까지 끝내면 이익 100. 마감시한은 1 이상의 정수입니다.
최대 이익 합
127
2개 작업 선택
슬롯별 배정
이익이 큰 순서로 훑은 과정
마감(2) 이하의 슬롯 2에 배정
마감(2) 이하의 슬롯 1에 배정
마감(1) 이하의 슬롯이 모두 찼습니다
마감(1) 이하의 슬롯이 모두 찼습니다
계산 방법
- 1작업마다 한 줄에 «이름 마감시한 이익»을 적습니다.
- 2이익이 큰 순서로 훑으며 배정되는 과정을 확인합니다.
- 3슬롯별 배정 결과와 최대 이익 합을 확인합니다.
자주 묻는 질문
작업마다 걸리는 시간은 똑같이 1단위이고, 각 작업은 자신의 마감시한까지 끝나야 합니다. 한 시간대(슬롯)에는 작업을 하나만 할 수 있을 때, 이익의 합이 가장 큰 작업 조합을 고르는 문제입니다. edu/activity-selection(겹치지 않게 가장 많이 고르기, 이익 없음)과 달리 여기서는 개수가 아니라 이익의 합을 최대화합니다.
이익이 큰 작업부터 훑으며, 그 작업의 마감시한 이하에서 가장 늦은 빈 슬롯에 배정합니다. 늦은 슬롯부터 채워야 마감이 이른 다른 작업이 쓸 이른 슬롯을 건드리지 않습니다. 빈 슬롯이 없으면 그 작업은 포기합니다.
교환 논증으로 증명됩니다. 이익이 가장 큰 작업을 최적해가 포함하지 않는다고 가정하면, 이미 뽑힌 작업 중 하나를 이 작업으로 바꿔도 손해 볼 수 없습니다(자리가 있고 이익이 더 크므로). 그러므로 이익이 가장 큰 작업을 포함하는 최적해가 항상 존재하고, 나머지에 같은 논증을 반복하면 그리디가 최적임이 보입니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 작업마다 걸리는 시간은 1단위로 같다고 가정합니다. 소요시간이 서로 다른 일반적인 스케줄링은 다루지 않습니다.
- 무작위 작업 조합 300개에서 그리디 결과가 모든 부분집합을 검사하는 전수조사(브루트포스)의 최댓값과 정확히 같은지 확인했습니다.
- 작업은 40개까지 입력할 수 있습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.