λ¬Έμ
μμ€μ΄λ μλΉ λ‘λΆν° Nκ°μ νμλ₯Ό λͺ¨λ μ§νν μ μλ μ΅μ νμμ€ κ°μλ₯Ό ꡬνλΌλ λ―Έμ μ λ°μλ€. κ° νμλ μμ μκ°κ³Ό λλλ μκ°μ΄ μ£Όμ΄μ§κ³ ν νμμ€μμ λμμ λ κ° μ΄μμ νμκ° μ§νλ μ μλ€. λ¨, νμλ νλ² μμλλ©΄ μ€κ°μ μ€λ¨λ μ μμΌλ©° ν νμκ° λλλ κ²κ³Ό λμμ λ€μ νμκ° μμλ μ μλ€. νμμ μμ μκ°μ λλλ μκ°λ³΄λ€ νμ μλ€. Nμ΄ λ무 컀μ κ΄΄λ‘μ νλ μ°λ¦¬ μμ€μ΄λ₯Ό λμμ£Όμ.
μ λ ₯
첫째 μ€μ λ°°μ΄μ ν¬κΈ° N(1 β€ N β€ 100,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° N+1 μ€κΉμ§ 곡백μ μ¬μ΄μ λκ³ νμμ μμμκ°κ³Ό λλλ μκ°μ΄ μ£Όμ΄μ§λ€. μμ μκ°κ³Ό λλλ μκ°μ 231β1λ³΄λ€ μκ±°λ κ°μ μμ°μ λλ 0μ΄λ€.
μΆλ ₯
첫째 μ€μ μ΅μ νμμ€ κ°μλ₯Ό μΆλ ₯νλ€.
νμ΄
μΌλ¨ μμμκ°κ³Ό λλλ μκ°μ ν΄λΉνλ μ«μκ° ν¬κΈ° λλ¬Έμ long long νμ μ μ¨μΌνλ μ μ λͺ μ¬νμ
μ΄ λ¬Έμ μ νμ΄λ₯Ό μ΄ν΄νκ³ μΆλ€λ©΄ κ·Έλ₯ μ§κ΄μ μΌλ‘ μκ°νλκ² μ μΌ νΈνλ€
1. νμλ₯Ό λ°°μ νκ³ λλλ μκ°μ νμμ€μ νμνλ€
2. λ€μ νμμ μμ μκ°μ νμμ€λ€μ νμλ λλλ μκ°κ³Ό λΉκ΅νλ€
3. μμ μκ° >= λλλ μκ° μΈ κ²½μ°κ° μμΌλ©΄ κ·Έ νμμ€μ λ°°μ , μμΌλ©΄ μ νμμ€μ λ°°μ
νμλ€μ νμνλ©΄μ λ°λ³΅
μ΄λ νμλ₯Ό νμν λλ μμμκ°μ΄ λΉ λ₯Έ νμλΆν° λ°°μ ν΄μΌνλ€.
μ λ ₯μΌλ‘ λ°μ νμ μκ°μ μ λ ¬νκ³ μμνμ
μ΄μ 본격μ μΌλ‘ νμμ€μ λ°°μ μ ν κ±°λ€.
μμμ νμμ€ λ°°μ΄μ λ§λ€κ³ κ° νμμ€μ νμκ° λλλ μκ°μ λ£λ ννλ‘ κ΅¬ννλ€.
(νμμ€μ λ°°μ λ νμκ° λλλ μκ°μ λͺ μνλ κ²κ³Ό λμΌ)
μ΄λ μμμ 2λ² λ¨κ³λ₯Ό ν λ <λ°°μ λ νμμ€ μ€ λλλ μκ°μ΄ κ°μ₯ λΉ λ₯Έ νμμ€> νλμ λΉκ΅νλ©΄ λλ€
λ§€λ² κ°μ₯ μκ°μ΄ λΉ λ₯Έκ±Έ μννλ©° λκΈ°μ μκ°μ΄ λΆμ‘±νλ priority_queue λ₯Ό μ΄μ©νλ€.
μ°μ μμ νλ₯Ό μ΄μ©νλ©΄ pq.top()μ΄ λλλμκ°μ΄κ°μ₯λΉ λ₯Ένμμ€μλλλμκ°. μ΄λ€
νμλ€μ μ°¨λ‘λλ‘ λ³΄λ©΄μ
νμμ€μ νμκ° λ€μ΄κ° μ μμΌλ©΄ (pq.top() <= νμ¬νμμ μμμκ°)
κ·Έ νμμ€μ νμλ₯Ό λ£κ³ (νμλ₯Ό λΉΌκ³ , νμ¬ νμλ₯Ό λ£μ = pq.top(); pq.push(νμ¬νμλλλμκ°))
λ€μ΄κ° μ μμΌλ©΄ μλ‘μ΄ νμμ€μ λ°°μ νλ€ (κ·Έλ₯ μλ‘ κ° λ£μ = pq.push(νμ¬νμλλλμκ°))
// νμ΄ : https://whkakrkr.tistory.com
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> ci;
bool cmp(ci a, ci b) {
return a.first < b.first;
}
int solution(int &n, vector<ci> &v) {
int ans;
sort(v.begin(), v.end(), cmp);
priority_queue<ll, vector<ll>, greater<>>pq;
pq.push(v[0].second);
for(int i=1; i<n; i++) {
ci cur = v[i];
if(pq.top() <= cur.first) {
pq.pop();
}
pq.push(cur.second);
}
ans = pq.size();
return ans;
}
int main() {
ios_base::sync_with_stdio(false);
cout.tie(NULL);
cin.tie(NULL);
int n;
cin >> n;
vector<ci>v(n);
ll a,b;
for(int i=0; i<n; i++) {
cin >> a >> b;
v[i] = {a,b};
}
cout << solution(n,v);
return 0;
}
'ποΈ ICPC Sinchon > Greedy' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ][C++] λ°±μ€ 21314λ²: λ―Όκ²Έ μ (Silver I) (0) | 2025.03.21 |
---|---|
[BOJ][C++] λ°±μ€ 13164λ²: ν볡 μ μΉμ (Gold V) (0) | 2025.03.19 |
[BOJ] λ°±μ€ 11047λ²: λμ 0 (0) | 2025.03.18 |
[BOJ][C++] λ°±μ€ 20365λ²: λΈλ‘κ·Έ2 (Silver III) (0) | 2025.03.18 |
[BOJ][C++] λ°±μ€ 1931λ²: νμμ€ λ°°μ (0) | 2025.03.18 |