π¦ Changgo/[BOJ] 그리λ μ 볡νκΈ°
[BOJ][C++] λ°±μ€ 11000λ²: κ°μμ€ λ°°μ (Gold V)
μ λ¬
2025. 4. 16. 01:28
λ°μν
λ¬Έμ
μκ°μ μ²μ λ§μ€ν° κΉμ’
ν μ μλμκ² μλ‘μ΄ κ³Όμ κ° μ£Όμ΄μ‘λ€.
κΉμ’
ν μ μλνν
λ Siμ μμν΄μ Tiμ λλλ Nκ°μ μμ
μ΄ μ£Όμ΄μ§λλ°, μ΅μμ κ°μμ€μ μ¬μ©ν΄μ λͺ¨λ μμ
μ κ°λ₯νκ² ν΄μΌ νλ€.
μ°Έκ³ λ‘, μμ
μ΄ λλ μ§νμ λ€μ μμ
μ μμν μ μλ€. (μ¦, Ti≤ SjμΌ κ²½μ° i μμ
κ³Ό j μμ
μ κ°μ΄ λ€μ μ μλ€.)
μκ°μ μ² λμΆ©ν κ² μ°λ¦¬λ©΄, μ μλμ λμλ리μ!
μ λ ₯
첫 λ²μ§Έ μ€μ Nμ΄ μ£Όμ΄μ§λ€. (1 ≤ N ≤ 200,000)
μ΄ν Nκ°μ μ€μ Si, Tiκ° μ£Όμ΄μ§λ€. (0 ≤ Si< Ti≤ 109)
μΆλ ₯
κ°μμ€μ κ°μλ₯Ό μΆλ ₯νλΌ.
νμ΄
// νμ΄ : https://whkakrkr.tistory.com
#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> ci;
int solution(int n, vector<ci>&v) {
int ans;
sort(v.begin(), v.end());
priority_queue<int, vector<int>, greater<int>> pq;
pq.push(v[0].second);
for(int i=1; i<n; i++) {
ci cur = v[i];
int s = cur.first;
int t = cur.second;
if(pq.top() <= s) {
pq.pop();
}
pq.push(t);
}
ans = pq.size();
return ans;
}
int main() {
ios_base::sync_with_stdio(false);
cout.tie(NULL);
cin.tie(NULL);
int n, a,b;
cin >> n;
vector<ci>v(n);
for(int i=0; i<n; i++) {
cin >> a >> b;
v[i] = {a,b};
}
int ans = solution(n, v);
cout << ans;
return 0;
}
λ°μν