π Computer Science
![μ΅μ λ² ν¨ν΄(Observer Pattern)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMlt0i%2Fbtrj4VZZgL6%2FMfCOcdeKUu5TMQg3aOe7vK%2Fimg.png)
μ΅μ λ² ν¨ν΄(Observer Pattern)
μ΅μ λ² ν¨ν΄(Observer Pattern) λ§μ½ μ μ μ κ²μ λ¨Έλκ° μ λ°μ΄νΈλμ΄ UI, μ΄λ²€νΈ λ± λ€λ₯Έ μ€λΈμ νΈμ λ³κ²½μ΄ νμνλ€λ©΄ μ΄λ»κ² ꡬνν κ²μΈκ°? λ§€λ² λ€λ₯Έ μ€λΈμ νΈκ° κ²μ λ¨Έλ μ λ°μ΄νΈκ° λλμ§ νμΈν μ μμ κ²μ΄λ€. μ΄λ΄ λ νμν κ²μ΄ μ΅μ λ² ν¨ν΄μ΄λ€. Sudject(κ²μ λ¨Έλ)λ‘λΆν° μ΄λ ν λ³νκ° μκΈ΄λ€λ©΄, Observerλ μ΄ λ³νλ₯Ό κ°μ§ν μ μλ€. κ°μ²΄μ μν λ³νλ₯Ό κ΄μ°°νλ κ΄μ°°μ(μ΅μ λ²)κ° μλ€. κ΄μ°°μλ₯Ό κ°μ²΄κ° κ°κ³ μλ€κ° μν λ³νκ° μμ λ λ©μλ λ±μ ν΅ν΄ κ°μ²΄κ° κ° μ΅μ λ²μκ² ν΅μ§νλ€. μ£Όλ‘ λΆμ° μ΄λ²€νΈ νΈλ€λ§ μμ€ν μ ꡬννλ λ° μ¬μ©λλ€. μ¬κΈ°μ ν΅μ¬μ κ°μ²΄μ μν λ³νλ₯Ό κ΄μ°°νλ κ²μΈλ°, κ³Όμ° μ΄λ»κ² κ΄μ°°νλ€λ κ²μΌκΉ? 1. ꡬν 1) Observer Concr..
[C++] μ€μν μκ³ λ¦¬μ¦(Sweeping Algorithm)
μ€μν μκ³ λ¦¬μ¦(Sweeping Algorithm) 곡κ°μ΄λ μ§μ μμμ νμͺ½ μμμ μ κΈ°μ€μΌλ‘ λ°λνΈ μ’ λ£ μ§μ κΉμ§ μ§λκ°λλ°, λ§μ£ΌμΉλ μμλ€μ λν΄ νλ¨μ΄ λλ κΈ°μ€μ μ μ©ν΄ μ λ΅μ ꡬνλ λ°©μμ΄λ€. μ¦, μ λ ¬λ μμλ€μ ν λ²λ§ μννλ©° μ°μ°νλ©΄ μ λ΅μ΄ λμ€κ² λλ€. λ¬Έμ https://www.acmicpc.net/problem/2261 2261λ²: κ°μ₯ κ°κΉμ΄ λ μ 첫째 μ€μ μμ°μ n(2 ≤ n ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. λ€μ nκ°μ μ€μλ μ°¨λ‘λ‘ κ° μ μ x, yμ’νκ° μ£Όμ΄μ§λ€. κ°κ°μ μ’νλ μ λκ°μ΄ 10,000μ λμ§ μλ μ μμ΄λ€. μ¬λ¬ μ μ΄ κ°μ μ’νλ₯Ό κ°μ§ μλ www.acmicpc.net #include #include #include #include #include usi..
![[C++] κ°ν μ°κ²° μμ(νμ, μ½μ¬λΌμ£Ό)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqvIDt%2Fbtq8aC6Cizx%2FkHgX9FhCy5eXd1WqLk1KnK%2Fimg.gif)
[C++] κ°ν μ°κ²° μμ(νμ, μ½μ¬λΌμ£Ό)
κ°ν μ°κ²° μμ(Strongly Connected Component) λ μ μ μ λν΄ μλ°©ν₯μΌλ‘ μ΄λ κ°λ₯ν κ²½λ‘κ° λͺ¨λ μμ λ λ μ μ μ κ°μ κ° κ²°ν© μ»΄ν¬λνΈ(SCC)μ μνλ€. μ¦, κ·Έλνμ μ¬μ΄ν΄μμ κ°μ μ¬μ΄ν΄ λ΄μ μ‘΄μ¬νλ μ μ λ€μ κ°μ SCCμ μνλ€κ³ ν μ μλ€. λ°©ν₯ κ·Έλνμμλ§ μ μλλ€. 1. νμ μκ³ λ¦¬μ¦ 1) κΈ°λ³Έ μ리 κΉμ΄ μ°μ νμ λ°©ν₯ κ·Έλνμ μ μ λ€μ λ°©λ¬Έν ν λ°©λ¬Έν μ μ μ κ°μ μ ν΅ν΄ μμμμ λ°©λ¬Έλ μ μ μ λ°©λ¬Ένλ€λ©΄ SCCκ° μ‘΄μ¬νλ€κ³ νλ¨νλ€. 2) λ¬Έμ https://www.acmicpc.net/problem/2150 2150λ²: Strongly Connected Component 첫째 μ€μ λ μ μ V(1 ≤ V ≤ 10,000), E(1 ≤ E ≤ 100,00..
[C++] μ΅μ μ μ₯ νΈλ¦¬(ν¬λ£¨μ€μΉΌ)
μ΅μ μ μ₯ νΈλ¦¬(Minimum Spanning Tree) λͺ¨λ μ μ μ μ°κ²°νλ νΈλ¦¬λ₯Ό μ μ₯ νΈλ¦¬λΌκ³ νλλ° κ°μ€μΉλ₯Ό κ°λ μ μ₯ νΈλ¦¬ μ€ κ°μ€μΉμ ν©μ΄ κ°μ₯ μμ μ μ₯ νΈλ¦¬λ₯Ό μ΅μ μ μ₯ νΈλ¦¬λΌκ³ νλ€. λνμ μΌλ‘ ν¬λ£¨μ€μΉΌ μκ³ λ¦¬μ¦μ΄ μμΌλ©°, κ·Έ μΈμλ νλ¦Ό μκ³ λ¦¬μ¦κ³Ό μλ¦° μκ³ λ¦¬μ¦μ΄ μλ€. νλ¦Ό μκ³ λ¦¬μ¦: μμμ μ μ μ λ£¨νΈ λ Έλλ‘ μ½μ ν ν μΈμ ν μ μ μ κ°μ μ€ κ°μ₯ μμ μ μ μ νΈλ¦¬μ μ½μ νλ©° μ΅μ μ μ₯ νΈλ¦¬λ₯Ό λ§λ λ€. μλ¦° μκ³ λ¦¬μ¦ 1. ν¬λ£¨μ€μΉΌ μκ³ λ¦¬μ¦(Kruskal's algorithm) 1) κΈ°λ³Έ μ리 λͺ¨λ κ°μ μ κ°μ€μΉλ₯Ό μ€λ¦μ°¨μμΌλ‘ μ λ ¬ν ν κ·Έ λͺ©λ‘μ μ°¨λ‘λλ‘ μννλ©° μ¬μ΄ν΄μ΄ μκΈ°μ§ μλλ‘ μ΅μ μ μ₯ νΈλ¦¬μ μ½μ νλ©° μ΅μ μ μ₯ νΈλ¦¬λ₯Ό λ§λ λ€. 2) λ¬Έμ www.acmicpc.net/pr..
![[C++] μΈκ·Έλ¨ΌνΈ νΈλ¦¬(Segment Tree)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZa2pf%2FbtqNSywlO4x%2F6aoW8V1HOmga2C3OA9qGTk%2Fimg.png)
[C++] μΈκ·Έλ¨ΌνΈ νΈλ¦¬(Segment Tree)
μΈκ·Έλ¨ΌνΈ νΈλ¦¬(Segment Tree) λ°°μ΄ λ΄ λ²μ κ°μ ꡬνκ±°λ νΉμ λ²μμ κ°λ€μ λ³κ²½ν λ λΉ λ₯΄κ² μ κ·ΌνκΈ° μν΄ μ¬μ©νλ€. μ΄λ¦ κ·Έλλ‘ κ΅¬κ°λ€μ 보쑴νκ³ μλ νΈλ¦¬μ΄λ€. 리ν λ Έλλ λ°°μ΄μ κ·Έ μ μ체λ₯Ό μλ―Ένκ³ λ¦¬ν λ Έλ μΈ λ Έλλ€μ μμ λ Έλλ₯Ό λννλ κ°μ΄λ€. 리ν λ Έλλ₯Ό μ μΈν λ Έλλ λΉμμ Έμλλ°, μΈκ·Έλ¨ΌνΈ νΈλ¦¬μ λͺ©μ μ λ°λΌ μ±μμΌνλ€. κΈ°λ³Έ μ리 : ν© https://www.acmicpc.net/blog/view/9 μΈκ·Έλ¨ΌνΈ νΈλ¦¬ (Segment Tree) λ¬Έμ λ°°μ΄ Aκ° μκ³ , μ¬κΈ°μ λ€μκ³Ό κ°μ λ μ°μ°μ μνν΄μΌνλ λ¬Έμ λ₯Ό μκ°ν΄λ΄ μλ€. κ΅¬κ° l, r (l ≤ r)μ΄ μ£Όμ΄μ‘μ λ, A[l] + A[l+1] + ... + A[r-1] + A[r]μ ꡬν΄μ μΆλ ₯νκΈ° iλ²μ§Έ μλ₯Ό vλ‘ ..
![λ©ν° νλ‘μΈμ±, λ©ν° νλ‘κ·Έλλ°, λ©ν° νμ€νΉ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxc3TL%2FbtqFa682LXZ%2FLC8tBrd1fGSXuwOGJYJ5f0%2Fimg.png)
λ©ν° νλ‘μΈμ±, λ©ν° νλ‘κ·Έλλ°, λ©ν° νμ€νΉ
CPU μ½μ΄μ κ΄μ μμ μκ°νμ¬ λΆλ₯νλ€. 1. λ©ν° νλ‘μΈμ±(Multi-processing) CPU μ½μ΄ μ¬λ¬ κ°λ‘ μ¬λ¬ κ°μ νλ‘μΈμ€λ₯Ό μννλ κ² λ©ν° μ°λ λ©(Multi-threading): νλμ νλ‘μΈμ€ λ΄μ μ¬λ¬ κ°μ μ€λ λκ° μ‘΄μ¬νμ¬ λ³λ ¬μ μΌλ‘ μ²λ¦¬νλ κ² 2. λ©ν° νλ‘κ·Έλλ°(Multi-programming) CPU μ½μ΄ νλλ‘ μ¬λ¬ κ°μ νλ‘μΈμ€λ₯Ό μννλ κ²μΌλ‘ νλ‘μΈμ μμμ΄ λλΉλλ κ²μ μ΅μννκΈ° μν¨μ΄λ€. 3. λ©ν° νμ€νΉ(Multi-tasking) λ€μμ Taskλ₯Ό μ΄μ체μ μ€μΌμ€λ§μ μν΄ λ²κ°μ κ°λ©΄μ μννλ κ²μΌλ‘ μ΄λ Taskλ νλ‘μΈμ€λ³΄λ€ νμ₯λ κ°λ μ΄λ€. νλ‘μΈμκ° κ°κ°μ Taskλ₯Ό μμ£Ό λ²κ°μκ°λ©΄μ μ²λ¦¬νλλ° μ¬μ©μμκ²λ λ§μΉ λμμ μ¬λ¬ Taskκ° μνλλ κ²μ²λΌ..