구간 병합·겹침 계산기
구간 목록을 넣으면 겹치는 것을 합치고, 어디가 몇 겹인지와 빈 구간을 냅니다. 최대 겹침 수가 곧 필요한 회의실 수이며, 끝점이 맞닿을 때를 겹침으로 볼지 고를 수 있습니다.
한 줄에 「시작 끝」. 숫자와 HH:MM을 모두 받고, 물결·쉼표·붙임표로 이어도 됩니다. 60줄까지.
10:00에 끝나는 일정과 10:00에 시작하는 일정을 겹친 것으로 볼지 정합니다. 병합 결과는 어느 쪽이든 같고, 겹침 수만 달라집니다.
가장 두꺼운 겹침
2겹
동시에 2개가 살아 있는 순간이 있으므로, 회의실·자원이 최소 2개 필요합니다. 아래 배정표가 그만큼으로 실제로 충분한 것을 보여 줍니다.
병합 결과
| 덩어리 | 길이 | 합쳐진 줄 |
|---|---|---|
| 09:00 ~ 12:00 | 3시간 0분 | 1, 2, 3 |
| 13:00 ~ 16:00 | 3시간 0분 | 4, 5, 6 |
빈 구간
병합된 덩어리 사이에 아무것도 없는 구간입니다. 가장 이른 시작 앞과 가장 늦은 끝 뒤는 세지 않습니다.
배정해 보기
시작이 이른 것부터 보며 비어 있는 방 가운데 번호가 작은 곳에 넣었습니다. 쓰인 방의 수가 위의 「가장 두꺼운 겹침」과 정확히 같습니다 — 그보다 적을 수 없고 그만큼이면 충분하다는 뜻이라, 최대 겹침 수가 곧 필요한 자원의 수입니다.
가장 붐비는 구간
겹침 두께가 바뀌는 지점
| 구간 | 겹침 |
|---|---|
| 09:00 ~ 09:30 | 1겹 |
| 09:30 ~ 10:30 | 2겹 |
| 10:30 ~ 11:00 | 2겹 |
| 11:00 ~ 12:00 | 1겹 |
| 12:00 ~ 13:00 | 0겹 |
| 13:00 ~ 13:30 | 1겹 |
| 13:30 ~ 14:00 | 2겹 |
| 14:00 ~ 15:00 | 2겹 |
| 15:00 ~ 16:00 | 1겹 |
끝점이 나타나는 좌표마다 잘라 그 사이의 두께를 센 것입니다. 0겹은 빈 구간입니다. 이 표의 두께는 맞닿음 규약과 무관합니다 — 규약이 바꾸는 것은 길이가 0인 한 순간의 두께뿐이기 때문입니다.
사용 방법
- 1구간을 한 줄에 하나씩 「시작 끝」으로 적습니다. 09:00 10:30처럼 시각으로도, 1 5처럼 숫자로도 됩니다.
- 2끝점이 맞닿을 때 겹친 것으로 볼지 고릅니다. 회의실 배정이라면 「겹치지 않음」입니다.
- 3병합된 덩어리와 빈 구간을 확인합니다.
- 4가장 두꺼운 겹침 수를 봅니다. 그 수가 곧 동시에 필요한 자원의 수입니다.
- 5배정표에서 어느 줄이 몇 번 방에 들어가는지 확인합니다.
자주 묻는 질문
쓰임새에 따라 다르며, 이 계산기는 그 규약을 고르게 합니다. 회의실이나 장비처럼 앞 사람이 비운 자리를 뒤 사람이 그대로 쓰는 경우에는 겹치지 않는 것으로 보아 방 하나면 충분합니다. 센서 값처럼 10시라는 순간에 둘 다 살아 있다고 보아야 하는 경우에는 겹치는 것으로 봅니다. 규약을 바꿔도 병합 결과는 같고, 겹침 수만 달라집니다.
겹침이 가장 두꺼운 곳의 두께가 곧 필요한 방의 수입니다. 그 순간에 그만큼이 한꺼번에 살아 있으니 그보다 적을 수는 없고, 시작이 이른 것부터 빈 방에 넣어 가면 그만큼으로 충분하기 때문입니다. 이 계산기는 실제로 배정까지 해 보여 그 수로 충분한 것을 확인시켜 줍니다.
시작점 기준으로 정렬한 뒤 한 번 훑으면 됩니다. 다음 구간의 시작이 지금까지 뻗어 온 끝보다 뒤가 아니면 같은 덩어리로 이어 붙이고, 아니면 새 덩어리를 시작합니다. 정렬이 O(n log n)이고 훑는 것은 O(n)이라 전체가 O(n log n)입니다.
합쳐집니다. 1~3과 3~5 사이에는 빈 곳이 없어 1~5 한 덩어리로 이어지며, 이는 맞닿음 규약과 무관합니다. 규약이 바꾸는 것은 「그 순간이 몇 겹인가」이지 「어디까지 이어지는가」가 아니기 때문입니다.
두 줄로 나눠 적어야 합니다. 23:00~01:00은 끝이 시작보다 앞서므로 그대로는 받지 않고, 23:00~23:59와 00:00~01:00으로 나누면 됩니다. 날짜 개념 없이 하루 안의 시각만 다루기 때문입니다.
길이가 0인 구간은 겹침을 세는 규약이 정해지지 않기 때문입니다. 반열린으로 보면 빈 집합이라 아무 자원도 쓰지 않는데, 닫힌으로 보면 한 순간을 차지합니다. 그러면 「최대 겹침 = 필요한 방의 수」가 두 규약에서 어긋나므로, 규약을 슬쩍 정해 두는 대신 받지 않습니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 검증은 무작위 구간 300벌에 대해 배정에 쓰인 방의 수가 최대 겹침 수와 정확히 같은지, 같은 방에 든 구간끼리는 실제로 겹치지 않는지를 두 규약 모두에서 대조해 했습니다. 덮인 길이가 겹침 구간 길이의 합과 맞는지도 함께 확인했습니다.
- 끝점이 맞닿을 때의 규약은 겹침 수만 바꾸고 병합 결과는 바꾸지 않습니다. 두 규약의 답이 갈리는 입력에서는 양쪽 값을 함께 보여 줍니다.
- 시작과 끝이 같은 길이 0인 구간은 받지 않습니다. 두 규약에서 「최대 겹침 = 필요한 방의 수」가 어긋나기 때문입니다.
- 하루 안의 시각만 다룹니다. 자정을 넘는 구간은 두 줄로 나눠 적어야 하며, 날짜는 다루지 않습니다.
- 구간 60개까지 다룹니다. 배정과 겹침 표를 모두 보이는 것이 목적이라 그보다 많으면 화면이 읽히지 않습니다.
- 1차원 구간만 다룹니다. 가로·세로를 함께 보는 사각형 겹침은 계산이 전혀 다릅니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.