가장 이른 종료 시간으로 활동 선택하기
겹치지 않는 이벤트를 가장 많이 일정에 배치합니다
가장 이른 종료 시간으로 활동 선택하기은(는) CoddyKit의 무료 Coding Interview Prep 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Coding Interview Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
일정 계획 문제
시작 시간과 종료 시간이 주어진 여러 행사에서 활동 선택 문제는 서로 겹치지 않도록 참석할 수 있는 행사의 최대 개수를 묻습니다. 📅
겹침은 충돌을 뜻합니다
한 활동이 다른 활동이 끝나기 전에 시작하면 두 활동은 충돌합니다. 서로 겹치는 두 행사 중에서는 하나만 선택할 수 있습니다.
승리를 위한 규칙
탐욕적 핵심은 아직 선택할 수 있는 행사 중 가장 일찍 끝나는 행사를 항상 고르는 것입니다. 빨리 끝낼수록 다른 행사를 위한 공간이 가장 많이 남습니다.
종료 시간으로 정렬하기
먼저 모든 활동을 종료 시간 기준으로 정렬하십시오. 그러면 다음 최선의 선택은 이 순서에서 조건에 맞는 첫 번째 활동이 됩니다.
events.sort(key=lambda e: e[1])마지막 종료 시간 추적하기
마지막으로 선택한 활동의 종료 시간을 저장할 변수 하나를 두십시오. 새 행사는 호환되려면 이 값과 같거나 그 이후에 시작해야 합니다.
last_end = -1훑으며 선택하기
정렬된 리스트를 한 번 훑으십시오. 행사가 마지막 종료 시각과 같거나 그 이후에 시작하면 선택하고, 마지막 종료 시각을 그 행사의 종료 시각으로 갱신하십시오.
for s, f in events:
if s >= last_end:
count += 1
last_end = fn log n에 실행됩니다
비용은 O(n log n)의 정렬 한 번과 이어지는 단일 선형 순회입니다. 대회의 입력이 매우 커도 충분히 빠릅니다.
가장 일찍 끝나는 행사가 이기는 이유
가장 먼저 끝나는 행사는 일정을 가장 빨리 비워 주므로 더 나은 계획을 방해할 수 없습니다. 어떤 최적 일정에 이 행사를 넣어도 똑같이 좋은 결과를 유지할 수 있습니다.
가장 이른 시작은 실패합니다
가장 이른 시작을 기준으로 고르면 하루 전체를 차지하는 긴 행사를 선택할 수 있습니다. 기간만 보아도 잘못 판단할 수 있으므로 종료 시간을 기준으로 하십시오.
경계가 맞닿는 경우 처리하기
한 행사가 다른 행사가 시작하는 순간에 정확히 끝날 때 충돌로 볼지 결정하십시오. 연속된 행사를 허용하려면 시작 시각이 마지막 종료 시각 이상이 되도록 하십시오.
대회에서 자주 보이는 형태
이 패턴은 방 예약, 방송 시청 또는 작업 실행처럼 다양한 문제에 숨어 있습니다. 이 패턴을 발견하면 가장 이른 종료 규칙을 적용할 수 있습니다.
간단히 확인하기
서로 겹치지 않는 활동을 최대한 많이 선택하고 싶습니다.
복습
활동을 종료 시간 기준으로 정렬한 다음, 마지막으로 선택한 활동이 끝난 뒤 시작하는 활동을 차례로 선택하십시오. 정렬 한 번과 순회 한 번으로 최대 집합을 얻을 수 있습니다. 🚀
자주 묻는 질문
“가장 이른 종료 시간으로 활동 선택하기” 강의는 무료인가요?
네 — “가장 이른 종료 시간으로 활동 선택하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Coding Interview Prep 강의 전체를 잠금 해제할 수 있습니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“가장 이른 종료 시간으로 활동 선택하기”에서 뭘 배우나요?
겹치지 않는 이벤트를 가장 많이 일정에 배치합니다 브라우저에서 직접 실행하는 실습 코드로 Coding Interview Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Coding Interview Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Coding Interview Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“가장 이른 종료 시간으로 활동 선택하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Coding Interview Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Coding Interview Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 탐욕적 사고방식
- 가장 이른 종료 시간으로 활동 선택하기
- 비율을 이용한 분할 배낭
- 탐욕법이 실패하는 순간 포착하기