λ¬Έμ
ν κ°μ νμμ€μ΄ μλλ° μ΄λ₯Ό μ¬μ©νκ³ μ νλ Nκ°μ νμμ λνμ¬ νμμ€ μ¬μ©νλ₯Ό λ§λ€λ €κ³ νλ€. κ° νμ Iμ λν΄ μμμκ°κ³Ό λλλ μκ°μ΄ μ£Όμ΄μ Έ μκ³ , κ° νμκ° κ²ΉμΉμ§ μκ² νλ©΄μ νμμ€μ μ¬μ©ν μ μλ νμμ μ΅λ κ°μλ₯Ό μ°Ύμ보μ. λ¨, νμλ νλ² μμνλ©΄ μ€κ°μ μ€λ¨λ μ μμΌλ©° ν νμκ° λλλ κ²κ³Ό λμμ λ€μ νμκ° μμλ μ μλ€. νμμ μμμκ°κ³Ό λλλ μκ°μ΄ κ°μ μλ μλ€. μ΄ κ²½μ°μλ μμνμλ§μ λλλ κ²μΌλ‘ μκ°νλ©΄ λλ€.
μ λ ₯
첫째 μ€μ νμμ μ N(1 ≤ N ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° N+1 μ€κΉμ§ κ° νμμ μ λ³΄κ° μ£Όμ΄μ§λλ° μ΄κ²μ 곡백μ μ¬μ΄μ λκ³ νμμ μμμκ°κ³Ό λλλ μκ°μ΄ μ£Όμ΄μ§λ€. μμ μκ°κ³Ό λλλ μκ°μ 2^31-1λ³΄λ€ μκ±°λ κ°μ μμ°μ λλ 0μ΄λ€.
μΆλ ₯
첫째 μ€μ μ΅λ μ¬μ©ν μ μλ νμμ μ΅λ κ°μλ₯Ό μΆλ ₯νλ€.
νμ΄
λνμ μΈ κ·Έλ¦¬λ μκ³ λ¦¬μ¦
쑰건 : μ΅λ νμμ μλ₯Ό ꡬνκΈ° μν΄μλ μ’ λ£μκ°μ κΈ°μ€μΌλ‘ μ νν΄μΌ νλ€.
- λ§μ½ μμμκ°μ κΈ°μ€μΌλ‘ μ‘λλ€λ©΄ (0, 10)μ΄ μμ λ (1, 4)μ (5, 6)μ΄ λ€μ΄κ° μ μκΈ° λλ¬Έμ μ΅λ νμμ μλ₯Ό ꡬν μ μλ€.
- μ’ λ£ μκ°μΌλ‘ μ€λ¦μ°¨μ μ λ ¬μ ν ν, μ’ λ£ μκ°μ΄ κ°μ κ²½μ°μλ μμ μκ°μ κΈ°μ€μΌλ‘ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλ€.
- μ λ ¬ν λ°°μ΄μ μμ°¨μ μΌλ‘ λλ©΄μ, νμ¬ μ’
λ£ μκ°λ³΄λ€ λμ€μ μλ μμ μκ°μ΄ μμ λ νμ μλ₯Ό λλ €μ£Όκ³ , νμ¬μ’
λ£ μκ°μ λ€μ νμμ μ’
λ£ μκ°μΌλ‘ λ°κΎΈμ΄μ€λ€.
#include <iostream> #include <vector> #include <algorithm> // sort using namespace std; vector<pair<int, int>> v; bool compare(pair<int, int>a, pair<int, int> b){ // first : μμ μκ°(첫 λ²μ§Έ μΈμ) // second : μ’ λ£ μκ°(λ λ²μ§Έ μΈμ) // λλλ μκ° κ°μΌλ©΄ μμ μκ° λΉ λ₯Έ κ²μ μμΌλ‘ if (a.second == b.second){ return a.first < b.first; } // κΈ°λ³Έμ μΌλ‘λ μ’ λ£ μκ° λΉ λ₯Έ κ²μ μμΌλ‘ else return a.second < b.second; } int main(){ int N, start, end; cin >> N; // vectorμ λ£κΈ° for (int i=0; i<N; i++){ cin >> start >> end; v.push_back({start, end}); } // μ λ ¬ sort(v.begin(), v.end(), compare); int occupy = v[0].second; int cnt = 1; for (int i=1; i<N; i++){ if (occupy <= v[i].first){ cnt++; occupy = v[i].second; } } cout << cnt; }β
μ΄νΌ μ°μ΅λ¬Έμ λ λκ°μμ νΈνκ² ν μ μμλ€. μ΄νΌλ μ¬κΈ°μμ νμμ€μ΄ 2κ°μΈ λ²μ μ΄λΌ s1, s2λ₯Ό μΈμλ‘ λκ³ λ°κΎΈμ΄μ£Όμλ€.
'β¨ Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/C++] 11399λ² : ATM (0) | 2021.08.16 |
---|---|
[λ°±μ€/C++] 11047λ² : λμ 0 (0) | 2021.08.16 |
[λ°±μ€/C++] 10162λ² : μ μλ μΈμ§ (0) | 2021.08.15 |
[λ°±μ€/C++] 5585λ² : κ±°μ€λ¦λ (0) | 2021.08.15 |
[λ°±μ€/C++] 10872λ² : ν©ν 리μΌ(μ¬κ·) (0) | 2021.08.14 |
λκΈ