백준 13334 철로

치즈·2022년 11월 9일

BOJ

목록 보기
13/45
#include <algorithm>
#include <iostream>
#include <queue>
#include <vector>

using namespace std;
int N;
vector<pair<int, int>> v;
priority_queue<int, vector<int>, greater<int>> pq;
int room = 0;

bool cmp(pair<int, int> a, pair<int, int> b) {
  if (a.first == b.first)
    return a.second < b.second;
  return a.first < b.first;
}

int max(int a, int b) { return a > b ? a : b; }

void input() {
  cin >> N;
  for (int i = 0; i < N; i++) {
    int s, e;
    cin >> s >> e;
    v.push_back({s, e});
  }
  sort(v.begin(), v.end(), cmp);
  pq.push(v[0].second);
}

void solve() {
  room = 1;
  for (int i = 1; i < N; i++) {
    while (!pq.empty())  {
      if(pq.top() <= v[i].first) pq.pop();
      else break;
    }
    pq.push(v[i].second);
    room = max(room, pq.size());
  }
}

int main(void) {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  input();
  solve();
  cout << room;
  return 0;
}
profile
차근차근 배워나가요

0개의 댓글