📝 문제 정보#
🧐 관찰 및 접근#
- 각 강의를 선분이라고 생각하면, 선분이 가장 많이 겹쳐진 타이밍이 가장 많은 강의실을 필요로 하는 타이밍일 것이다.
- 스위핑을 사용해서 이를 계산하자.
💻 풀이#
- 코드 (C++):
void solve(){
int N; cin >> N;
vector<pair<int, bool>> events; // {time, isStart}
rep(i, 0, N){
events.push_back({s, true});
events.push_back({e, false});
}
sort(all(events));
int ans = 0, cnt = 0;
for(auto [time, isStart]: events){
if(isStart) cnt++;
else cnt--;
ans = max(ans, cnt);
}
cout << ans;
}