π Computer Science
![μκ³ λ¦¬μ¦ μ±λ₯ λΆμ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrqGxS%2FbtqE1vzxAs0%2FnQGIc0jOZQyTQEZzQjhJo1%2Fimg.png)
μκ³ λ¦¬μ¦ μ±λ₯ λΆμ
μκ³ λ¦¬μ¦μ νκ°νλ λ° μμ΄ μν μκ°κ³Ό λ©λͺ¨λ¦¬ μ¬μ©λμ νκ°κΈ°μ€μΌλ‘ λλλ°, μν μκ°μ ν΄λΉλλ κ²μ΄ μκ° λ³΅μ‘λ, λ©λͺ¨λ¦¬ μ¬μ©λμ ν΄λΉλλ κ²μ΄ κ³΅κ° λ³΅μ‘λμ΄λ€. λ³΄ν΅ μκ³ λ¦¬μ¦μ μ±λ₯ λΆμμ 볡μ‘λλ₯Ό κ³μ°νμ¬ μ κ·Όμ νκΈ°λ²μΌλ‘ λνλΈλ€. μ κ·Όμ λΆμ μ λ ₯ κ°μ κ°μμ λ°λΌ μκ³ λ¦¬μ¦μ μν μκ°μ λ°νμΌλ‘ μκ³ λ¦¬μ¦μ ν¨μ¨μ±μ νκ°νλ€. 1) λΉ μ€ νκΈ°λ² O μ κ·Όμ μνμ μΌλ‘ μ κ·Όμ μ¦κ°μ¨μ΄ f(N)μ λμ§ μλ λͺ¨λ ν¨μλ€μ μ§ν©μ΄λ€. μ¦, μ΅κ³ μ°¨νμ μ°¨μκ° f(N)κ³Ό κ°κ±°λ λ μμ ν¨μλ€μ μ§ν©μ΄λ€. f(N)
μΊμ λ©λͺ¨λ¦¬(Cache Memory)
μΊμ λ©λͺ¨λ¦¬ μ£ΌκΈ°μ΅μ₯μΉμ μ μ₯λ λ΄μ©μ μΌλΆλ₯Ό μμλ‘ μ μ₯ν΄λλ κΈ°μ΅μ₯μΉλ‘ μλκ° λΉ λ₯Έ μ₯μΉμ λλ¦° μ₯μΉ κ°μ μλμ°¨μ λ°λ₯Έ λ³λͺ© νμμ μ€μ΄κΈ° μν λ²μ© λ©λͺ¨λ¦¬μ΄λ€. 1. μ§μμ±(Locality) νλ‘μΈμ€κ° μ€νλλ λμ μ£ΌκΈ°μ΅μ₯μΉλ₯Ό μ°Έμ‘°ν λ μΌλΆ νμ΄μ§λ§ μ§μ€μ μΌλ‘ μ°Έμ‘°νλ μ±μ§λ‘ μΊμμ μ μ€λ₯ (Hit rate)μ κ·Ήλνμν€κΈ° μν΄ μ§μμ±μ μ리λ₯Ό μ¬μ©νλ€. μκ° μ§μμ±: μ΅κ·Όμ μ°Έμ‘°λ μ£Όμμ λ΄μ©μ 곧 λ€μμ λ€μ μ°Έμ‘°λλ νΉμ± κ³΅κ° μ§μμ±: λλΆλΆμ μ€μ νλ‘κ·Έλ¨μ΄ μ°Έμ‘°λ μΈμ ν μ£Όμμ λ΄μ©μ΄ λ€μ μ°Έμ‘°λλ νΉμ± 2. μΊμ± λΌμΈ(Caching line) μΊμμ λ°μ΄ν°λ₯Ό μ μ₯ν λ, λ°μ΄ν°μ λ©λͺ¨λ¦¬ μ£Όμ λ±μ κΈ°λ‘ν΄ λ νκ·Έλ₯Ό λ¬μ κΈ°λ‘νλ€. μ΄λ μ΄λ¬ν νκ·Έλ€μ λ¬Άμμ μΊμ± λΌμΈμ΄λΌ νλ€. μΊμ±..
[C++] λΉνΈλ§μ€ν¬(BitMask)
λΉνΈλ§μ€ν¬(BitMask) μ§ν© μμλ€μ κ΅¬μ± μ¬λΆλ₯Ό ννν λ μ μ©ν ν ν¬λμ΄λ€. κΈ°λ³Έ μ리 {1, 2, 3, 4, 5}λΌλ μ§ν©μ΄ μκ³ μ΄ μ§ν©μ λΆλΆμ§ν©μ ꡬν΄μΌ νλ€. {1}, {2}, ..., {1, 2}, ..., {1, 2, 5}, ..., {1, 2, 3, 4, 5} λ¬Όλ‘ κ°λ¨ν λ°λ³΅λ¬Έμ ν΅ν΄ κ²½μ°μ μλ₯Ό ꡬν μ μλ€. νμ§λ§ λΉνΈ λ§μ€νΉμ νλ©΄ κ° μμλ₯Ό μΈλ±μ€μ²λΌ νννμ¬ ν¨μ¨μ μΈ μ κ·Όμ΄ κ°λ₯νλ€. {1, 2, 3, 4, 5} → 11111 {2, 3, 4, 5} → 11110 {1, 2, 5} → 10011 {2} → 00010 1) μ½μ iλ² μ§Έ λΉνΈ κ°μ 1λ‘ λ³κ²½νλ €κ³ νλ€. μ΄λ OR μ°μ°μ νμ©νλ€. i = 3μΌ λ, 10101 | (1 machine[i][j]; cin >..
![MVC ν¨ν΄](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpfm71%2FbtqEcGpoI55%2FFpMRTAfac69I8B3EhD7xqK%2Fimg.png)
MVC ν¨ν΄
MVC(Model-View-Controller) ν¨ν΄ μννΈμ¨μ΄μμ λ§€μ° λ리 μ¬μ©λλ λμμΈ ν¨ν΄μΌλ‘ ν¬κ² λͺ¨λΈ, λ·°, 컨νΈλ‘€λ¬λ‘ ꡬ쑰ννλ€. λΉμ¦λμ€ λ‘μ§κ³Ό νλ μ ν μ΄μ λ‘μ§μ λλμ΄μ μ²λ¦¬νλ€. μ½κ² λ§ν΄ μ°μ°μ νλ μ 무μ μ¬μ©μκ° λ³΄λ νλ©΄μ λ§λλ μ 무λ₯Ό λΆλ¦¬ν΄μ μ²λ¦¬νλ λ°©μμ΄λΌκ³ λ³Ό μ μλ€. μ½λμ μμ΄ λ§μμ Έλ μ μ§ λ³΄μκ° νΈνκ³ νμ₯μ΄ μ©μ΄νλ€. μ¬λ¬ κ°μ λ·°λ₯Ό λ§λ€ μ μμΌλ―λ‘ λνν μ ν리μΌμ΄μ μ μ ν©νλ€. λνν μ ν리μΌμ΄μ μ΄λ μ¬μ©μμ μκ΅¬κ° λ°μνλ©΄ μμ€ν μ΄ μ΄λ₯Ό μ²λ¦¬νκ³ λ°μνλ μννΈμ¨μ΄λ₯Ό λ§νλ€. 1. κ΅¬μ± μμ 1) λͺ¨λΈ(Model) μμ© νλ‘κ·Έλ¨μμ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λΆλΆμ΄λ€. DBμ μ°κ²°νκ³ λ°μ΄ν°λ₯Ό μΆμΆνκ±°λ μ μ₯, μμ , κ°±μ λ±μ μμ μ μννλ€. λ΄λΆ λΉμ¦λ..
![μ±κΈν€ ν¨ν΄(Singleton Pattern)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFGXnJ%2FbtqEcTWd2Zh%2FBdhCqCWHrAKfdO7TB9gxbk%2Fimg.png)
μ±κΈν€ ν¨ν΄(Singleton Pattern)
μ±κΈν€ ν¨ν΄(Singleton Pattern) μ μ λ³μλ₯Ό μ¬μ©νμ§ μκ³ μΈμ€ν΄μ€λ₯Ό νλλ§ μμ±νλλ‘ νλ©° μμ±λ μΈμ€ν΄μ€λ₯Ό μ΄λμλ μ¬μ©ν μ μλ ν¨ν΄μ΄λ€. μΈμ€ν΄μ€λ₯Ό μ¬λ¬ κ° λ§λ€λ©΄ μμμ λλΉνκ±°λ λ²κ·Έλ₯Ό λ°μμν¬ μ μμΌλ―λ‘ μ€μ§ νλλ§ μμ±νλ€. ꡬν νλμ μΈμ€ν΄μ€λ§ μ μ§νκΈ° μν΄ μμ±μμ private μ κ·Ό μ μ΄μλ₯Ό μ§μ νκ³ μ μΌν λ¨μΌ κ°μ²΄λ₯Ό λ°νν μ μλλ‘ μ μ λ©μλλ₯Ό μ§μν΄μΌ νλ€. #include using namespace std; // λ€μ΄λλ―Ή μ±κΈν€(Dynamic Singleton) // κ²μΌλ₯Έ μ΄κΈ°ν: μ±κΈν€μ μ€μ λ‘ νμλ‘ ν λκΉμ§ μ΄κΈ°νλ₯Ό 미룬λ€. class DynamicSingleton { private: DynamicSingleton() {} static Dynam..
![λμμΈ ν¨ν΄(Design Pattern)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fys0d5%2FbtqEbvB2mJB%2FWKSi8BySb5VKPpsxnR1zC1%2Fimg.png)
λμμΈ ν¨ν΄(Design Pattern)
λμμΈ ν¨ν΄(Design Pattern) μννΈμ¨μ΄λ₯Ό μ€κ³ν λ νΉμ λ§₯λ½μμ μμ£Ό λ°μνλ κ³ μ§μ μΈ λ¬Έμ λ€μ΄ λ λ°μνμ λ μ¬μ¬μ©ν ν μ μλ νλ₯ν ν΄κ²°μ± μ΄λ€. κ°κΈ° λ€λ₯Έ μννΈμ¨μ΄ λͺ¨λμ΄λ κΈ°λ₯μ κ°μ§ λ€μν μμ© μννΈμ¨μ΄ μμ€ν λ€μ κ°λ°ν λλ μλ‘ κ°μ 곡ν΅λλ μ€κ³ λ¬Έμ κ° μ‘΄μ¬νλ©° μ΄λ₯Ό μ²λ¦¬νλ ν΄κ²°μ± μ¬μ΄μλ 곡ν΅μ μ΄ μλ€. μ΄λ¬ν μ μ¬μ μ ν¨ν΄μ΄λΌ νλ€. ν¨ν΄μ 곡ν΅μ μΈμ΄λ₯Ό λ§λ€μ΄μ£Όλ©° νμ μ¬μ΄μ μμ¬μν΅μ μννκ² ν΄μ£Όλ μμ£Ό μ€μν μν μ νλ€. GoF λμμΈ ν¨ν΄ 23κ°μ§μ λμμΈ ν¨ν΄μ μ 리νκ³ κ°κ°μ λμμΈ ν¨ν΄μ μμ±, ꡬ쑰, νμ 3κ°μ§λ‘ ꡬλΆνλ€. μμ± ν¨ν΄: κ°μ²΄ μμ±μ κ΄λ ¨λ ν¨ν΄μΌλ‘ κ°μ²΄μ μμ±κ³Ό μ‘°ν©μ μΊ‘μνν΄ νΉμ κ°μ²΄κ° μμ±λκ±°λ λ³κ²½λμ΄λ νλ‘κ·Έλ¨ κ΅¬μ‘°μ ..