๋ฐ์ํ
์ ์ฒด ๊ธ
[C++] keyword: inline, __inline, __forceinline
[C++] keyword: inline, __inline, __forceinline
2020.07.221. ์ค๋ช
1.1) inline inline ํค์๋๋ ํจ์ ํธ์ถ ์ ๋ฐ์ํ๋ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ธฐ ์ํด ํจ์๋ฅผ ํธ์ถํ๋ ๋์ ํจ์๊ฐ ํธ์ถ๋๋ ๊ณณ๋ง๋ค ํจ์์ ์ฝ๋๋ฅผ ๋ณต์ฌํด ๋ฃ์ด์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ํจ์ ํธ์ถ ์ ๋ฐ์ํ๋ ์ค๋ฒํค๋๋ ๋ญ๊น? ์ค์ ๋ก ํจ์๊ฐ ํธ์ถ๋๋ ๊ณผ์ ์ ์์ฝํ๋ฉด 1. ํจ์์ ์ธ์๋ฅผ ์คํ์ ์ ์ฅ 2. ํจ์๊ฐ ๋ฆฌํด๋ ๋ ๋์์ฌ ์ฃผ์๋ฅผ ์คํ์ด๋ ๋ ์ง์คํฐ์ ์ ์ฅ 3. ํจ์์ ์์ ์ฃผ์๋ก ์ ํ 4. ํจ์์ ์ฝ๋ ์คํ 5. ํจ์์์ ๋ง๋ค์ด์ง ์ง์ญ๋ณ์, ์คํ์ ์ ์ฅ๋ ์ธ์ ํด์ , ๋ฆฌํด ๊ฐ์ ๋ ์ง์คํฐ์ ์ ์ฅ 6. ํจ์๋ฅผ ํธ์ถ ํ ๋ ์ ์ฅํด๋ ์ฃผ์๋ก ๋๋์๊ฐ ์์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋๋ฐ ๊ฐ๋จํ ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ํด์ ์ ๋ฐ ๋ช
๋ น์ด๋ค์ ์ํํด์ผ ํ๋ค๋ฉด ์ค๋ฒํค๋๊ฐ ๋ ์๋ฐ์ ์๋ค. ์ด๋ฐ ์ค๋ฒ ํค๋๋ฅผ ์ค์ด๊ธฐ ์ํด C..
[C++] keyword: const
[C++] keyword: const
2020.07.221. ์ค๋ช
const ํค์๋์ ํจ๊ป ์ ์ํ ๋ณ์์ ๊ฐ์ ์์ ์ด ๋ถ๊ฐ๋ฅํ๋ค. ์ฆ, ์์ํ ๋์ด๋ฒ๋ฆฌ๋๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ ๋ฐ๋๋ฉด ์ ๋ ๊ฐ์ด ์์ ๊ฒฝ์ฐ ์ ์ฉํ๋ค. ์ฝ๋๊ฐ ๊ธธ์ด์ง ์ค์๋ก ๋ณ์์ ๊ฐ์ด ๋ฐ๋์ด ์ง๋ ๊ฒ์ ๋ฐฉ์งํ ๊ฒฝ์ฐ ํ์ฉํ ์ ์๋ค. 2. ์์ 2.1) ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ const int a = 1; a = 5; // error! ํ๋ฒ ์ค์ ๋ a๋ read-only memory์ ์ฌ๋ผ๊ฐ๊ฒ ๋๊ณ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋๋ค. 2.1) ํจ์ ๋ด ์ธ์๊ฐ์์ ํ์ฉํ๋ ๊ฒฝ์ฐ class Child { public: int age; string name; string address; Child() = default; Child(int age, string name, string address) : age(age), name..
[C++11] keyword: final
[C++11] keyword: final
2020.07.221. ์ค๋ช
final ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋์ค๋ ๋ฉค๋ฒ ํจ์์ ์์์ ๋ง์ ์ ์๋ค. class Parent final // ํด๋์ค์ final ํค์๋๋ฅผ ์ฌ์ฉ ํ ๊ฒฝ์ฐ 2. ์์ 2.1) final๋ก ์ ์ธ ๋ ํด๋์ค๋ฅผ ์์ํ์ ์ #include using namespace std; class Parent final { public: Parent() { cout
[C++11] keyword: override
[C++11] keyword: override
2020.07.221. ์ค๋ช
์ค์๋ก ๊ฐ๋ฐ์๊ฐ ์ค๋ฒ๋ผ์ด๋ฉ(overriding)ํด์ผ ํ๋ ํจ์์๋ ๋ถ๊ตฌํ๊ณ ์ค๋ฒ๋ผ์ด๋ฉ์ ํ์ง ์์์ ๊ฒฝ์ฐ ์ปดํ์ผ ํ์์ ์๋ฌ๋ฅผ ๋ฐ์์์ผ ๋ฏธ์ฐ์ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์๋ค. void override_func() override { cout
[C++] keyword: virtual
[C++] keyword: virtual
2020.07.221. ์ค๋ช
์์ ํด๋์ค๊ฐ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์์ํ๊ณ , ๋ถ๋ชจ ํด๋์ค์ ํจ์๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉ ํ๋ค๊ณ ๊ฐ์ , ๋คํ์ฑ์ ์ด์ฉํด ๋ถ๋ชจ ํด๋์ค์ ํฌ์ธํฐ๋ก ์์ ์ธ์คํด์ค ์ฃผ์ ๊ฐ์ ์ง์ ํ๊ณ ์ค๋ฒ๋ผ์ด๋ฉ ํ ํจ์๋ฅผ ํธ์ถํ์ ๋ virtual ํค์๋์ ์ ๋ฌด์ ๋ฐ๋ผ ์คํ๋๋ ํจ์๊ฐ ๋ฌ๋ผ์ง๋ค. virtual ํค์๋๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๊ฐ์ ํจ์ ํ
์ด๋ธ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ์ค๋ฒํค๋๊ฐ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ virtual ํค์๋๋ C++์์ default๊ฐ ์๋๊ณ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ง์ ํด์ค์ผํ๋ค. virtual void speak() = 0; ์์ ๊ฐ์ด virtual ํค์๋ ๋งจ ์ฐ์ธก์ = 0; ์ ์ง์ ํด์ฃผ๋ฉด ํด๋น ํจ์๋ ์์ ๊ฐ์ ํจ์(pure virtual function)๊ฐ ๋๋ค. ์์ ๊ฐ์ ํจ์๋ ์ง์ ํธ์ถ์ด ๋ถ๊ฐ๋ฅํ๋ฉฐ ๋ฐ๋์ ์ค๋ฒ๋ผ์ด๋ฉ(ov..
[C++] keyword: public, protected, private
[C++] keyword: public, protected, private
2020.07.221. ์ค๋ช
public: ์ด๋๊ณณ์์๋ ์ ๊ทผ ๊ฐ๋ฅ protected: ์์๋ฐ๋ ํด๋์ค์ ํํด์๋ง ์ ๊ทผ ๊ฐ๋ฅ private: ์๊ธฐ ์์ ๋ง ์ ๊ทผ ๊ฐ๋ฅ ๋ฉค๋ฒ ๋ณ์๋ ๋ฉค๋ฒ ํจ์ ๊ฐ์ ๊ฒฝ์ฐ ์ ๊ทผ ์ ์ด์๋ ์์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ฅธ๋ค. ํด๋์ค์ธ ๊ฒฝ์ฐ default๋ก private, ๊ตฌ์กฐ์ฒด์ธ ๊ฒฝ์ฐ default๋ก public์ด๋ค. class Parent : (์ ๊ทผ์ ์ด์) Child ์์ ๊ฐ์ด ์์์ ์ ๊ทผ ์ ์ด์๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ด ์ ์ฉ๋๋ค. public: ๊ธฐ๋ฐ ํด๋์ค์ ์ ๊ทผ ์ ์ด์์ ์ํฅ ์์ด ๊ทธ๋๋ก ์๋ํ๋ค. ์ฆ public์ ๊ทธ๋๋ก public, protected๋ ๊ทธ๋๋ก protected, private๋ ๊ทธ๋๋ก private protected: ํ์ ํด๋์ค ์
์ฅ์์ public์ protected๋ก ..
[OS] ํ๋ก์ธ์ค ์ค์ผ์ค๋ง(CPU ์ค์ผ์ค๋ง, ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ)
[OS] ํ๋ก์ธ์ค ์ค์ผ์ค๋ง(CPU ์ค์ผ์ค๋ง, ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ)
2020.07.221. ์ค์ผ์ค๋ฌ / ์ค์ผ์ค๋ง์ด๋? ์์
๊ด๋ฆฌ์๋ฅผ ์คํํด ๋ณธ ์ ์ด ์๋ค๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ ๋ณธ ์ ์ด ์์ ๊ฒ์ด๋ค. ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ํ์ธ ํ ์ ์๋ค. ์ฌ๊ธฐ์ ํ๋ก์ธ์ค๋, ์ด์์ฒด์ ์์ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ์ต์ ๋จ์, ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ด๋ผ ์ดํดํ๋ฉด ๋๋ค. ์ด ํ๋ก์ธ์ค๋ค์ ์ด๋์์ ์ด๋ป๊ฒ ์คํ๋๋ ๊ฑธ๊น? ๋ต์, ์ปดํจํฐ์ ๋๋๋ผ ํ๋ CPU์ ์ฝ์ด์์ ์คํ๋๊ณ ์๋ค. ์๋ ์๋ ์ผ๋ฐ ์๋น์์ฉ CPU์ ๊ฒฝ์ฐ 1๊ฐ์ ์ฝ์ด๋ฅผ ๊ฐ์ง๋ ๊ฒ์ด ๋๋ถ๋ถ์ด์๋ค. ์ด ๋ง์ CPU๊ฐ ํ ๋ฒ์ ํ ๊ฐ์ ์ฐ์ฐ์ ์ํํ๋ค๋ ๊ฒ์ธ๋ฐ, ๋๋์ฒด ๊ทธ ์์ ์๋ ์ธํฐ๋ท์ ํ๋ฉด์ ์์
์ ๋ฃ๊ณ ๋์์ ๊ฒ์๋ ํ ์ ์์๋ ๊ฑธ๊น? ๋ฐ๋ก ์ปจํ
์คํธ ์ค์์นญ(Context switching)์ด๋ผ๋ ๊ธฐ์ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ค. ์ปดํจํฐ์์..
[Dynamic Programming] ๋ฐฐ๋ญ ๋ฌธ์ (Knapsack Problem)
[Dynamic Programming] ๋ฐฐ๋ญ ๋ฌธ์ (Knapsack Problem)
2020.07.17์ค๋ช
๋ฐฐ๋ญ ๋ฌธ์ (Knapsack Problem)๋ ์กฐํฉ ์ต์ ํ์ ์ ๋ช
ํ ๋ฌธ์ ๋ค. ์๋ฅผ ๋ค์ด ์ค๋ช
ํด๋ณด์. ํ ์ฌํ๊ฐ๊ฐ ์ฌํ์ ๋ ๋๋ ค๊ณ ํ๋ค. ์ฌํ๊ฐ๊ฐ ๊ฐ์ง๊ณ ๊ฐ๋ ๋ฐฐ๋ญ์๋ ๋ด์ ์ ์๋ ๋ฌด๊ฒ์ ์ต๋๊ฐ์ด ์ ํด์ ธ ์๊ณ ๋ฐฐ๋ญ์ ๋ฃ์ ์ ์๋ ์ง์๋ ๊ฐ๊ฐ์ ๋ฌด๊ฒ(W)์ ๊ฐ์น(V)๊ฐ ์ ํด์ ธ ์๋ค. ์ด ์ฌํ๊ฐ๊ฐ ๋ฐฐ๋ญ์ ๋ฌด๊ฒ๋ฅผ ์ต๋ํ ๊ฝ ์ฑ์ฐ๋ ๊ฐ์น์ ํฉ์ด ์ต๋๊ฐ ๋๋๋ก ์ง์ ๊ณ ๋ฅด๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น? ์ฌ๊ธฐ์ ์ง์ ์ชผ๊ฐค ์ ์๋ ๊ฒฝ์ฐ(๋ฌด๊ฒ๊ฐ ์์์ผ ์ ์๋ ๊ฒฝ์ฐ)์ ์ง์ ์ชผ๊ฐค ์ ์๋ ๊ฒฝ์ฐ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค. ์ง์ ์ชผ๊ฐค ์ ์๋ ๋ถํ ๊ฐ๋ฅ ๋ฐฐ๋ญ ๋ฌธ์ (Fractional Knapsack Problem) - ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ง์ ์ชผ๊ฐค ์ ์๋ ๋ฐฐ๋ญ ๋ฌธ์ (Knapsack Problem) - ๋์ ๊ณํ๋ฒ(Dynami..
[C++, Golang] 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ
[C++, Golang] 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ
2020.07.17ํด๋น ๊ธ์ ๋ด์ฉ์ ์ต์ ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ ๊ธ์ด์ด์ ์ฃผ๊ด์ ์ธ ํ์ด์
๋๋ค. ๋ ์ข์ ํ์ด๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค(__) ๋งํฌ https://www.acmicpc.net/problem/12865 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ ์ฒซ ์ค์ ๋ฌผํ์ ์ N(1 โค N โค 100)๊ณผ ์ค์๊ฐ ๋ฒํธ ์ ์๋ ๋ฌด๊ฒ K(1 โค K โค 100,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์ ๋ฌด๊ฒ W(1 โค W โค 100,000)์ ํด๋น ๋ฌผ๊ฑด์ ๊ฐ์น V(0 โค V โค 1,000) www.acmicpc.net ๋ฌธ์ ์ค๋ช
์ด ๋ฌธ์ ๋ ์์ฃผ ํ๋ฒํ ๋ฐฐ๋ญ์ ๊ดํ ๋ฌธ์ ์ด๋ค. ํ ๋ฌ ํ๋ฉด ๊ตญ๊ฐ์ ๋ถ๋ฆ์ ๋ฐ๊ฒ ๋๋ ์ค์๋ ์ฌํ์ ๊ฐ๋ ค๊ณ ํ๋ค. ์ธ์๊ณผ์ ๋จ์ ์ ์ฌํผํ๋ฉฐ ์ต๋ํ ์ฆ๊ธฐ๊ธฐ ์ํ ์ฌํ์ด๊ธฐ ๋๋ฌธ์, ๊ฐ์ง๊ณ ๋ค๋ ..
[C++, Golang] 2798๋ฒ: ๋ธ๋์ญ
[C++, Golang] 2798๋ฒ: ๋ธ๋์ญ
2020.07.14ํด๋น ๊ธ์ ๋ด์ฉ์ ์ต์ ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ ๊ธ์ด์ด์ ์ฃผ๊ด์ ์ธ ํ์ด์
๋๋ค. ๋ ์ข์ ํ์ด๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค(__) ๋งํฌ https://www.acmicpc.net/problem/2798 2798๋ฒ: ๋ธ๋์ญ ๋ฌธ์ ์นด์ง๋
ธ์์ ์ ์ผ ์ธ๊ธฐ ์๋ ๊ฒ์ ๋ธ๋์ญ์ ๊ท์น์ ์๋นํ ์ฝ๋ค. ์นด๋์ ํฉ์ด 21์ ๋์ง ์๋ ํ๋ ๋ด์์, ์นด๋์ ํฉ์ ์ต๋ํ ํฌ๊ฒ ๋ง๋๋ ๊ฒ์์ด๋ค. ๋ธ๋์ญ์ ์นด์ง๋
ธ๋ง๋ค ๋ค์ํ ๊ท์ ์ด ๏ฟฝ๏ฟฝ www.acmicpc.net ๋ฌธ์ ์ค๋ช
์นด์ง๋
ธ์์ ์ ์ผ ์ธ๊ธฐ ์๋ ๊ฒ์ ๋ธ๋์ญ์ ๊ท์น์ ์๋นํ ์ฝ๋ค. ์นด๋์ ํฉ์ด 21์ ๋์ง ์๋ ํ๋ ๋ด์์, ์นด๋์ ํฉ์ ์ต๋ํ ํฌ๊ฒ ๋ง๋๋ ๊ฒ์์ด๋ค. ๋ธ๋์ญ์ ์นด์ง๋
ธ๋ง๋ค ๋ค์ํ ๊ท์ ์ด ์๋ค. ํ๊ตญ ์ต๊ณ ์ ๋ธ๋์ญ ๊ณ ์ ๊น์ ์ธ์ ์๋ก์ด ๋ธ๋์ญ ๊ท์น์ ๋ง๋ค์ด ์๊ทผ..
[C++, Golang, Java] 14888๋ฒ: ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ
[C++, Golang, Java] 14888๋ฒ: ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ
2020.07.10ํด๋น ๊ธ์ ๋ด์ฉ์ ์ต์ ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ ๊ธ์ด์ด์ ์ฃผ๊ด์ ์ธ ํ์ด์
๋๋ค. ๋ ์ข์ ํ์ด๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค(__) ๋งํฌ https://www.acmicpc.net/problem/14888 14888๋ฒ: ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(2 โค N โค 11)๊ฐ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ A1, A2, ..., AN์ด ์ฃผ์ด์ง๋ค. (1 โค Ai โค 100) ์
์งธ ์ค์๋ ํฉ์ด N-1์ธ 4๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง๋๋ฐ, ์ฐจ๋ก๋๋ก ๋ง์
(+)์ ๊ฐ์, ๋บ์
(-)์ ๊ฐ์, ๏ฟฝ๏ฟฝ www.acmicpc.net ๋ฌธ์ ์ค๋ช
N๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด A1, A2,..., AN์ด ์ฃผ์ด์ง๋ค. ๋, ์์ ์ ์ฌ์ด์ ๋ผ์ ๋ฃ์ ์ ์๋ N-1๊ฐ์ ์ฐ์ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ์ฐ์ฐ์๋ ๋ง์
(+), ๋บ์
(-), ๊ณฑ์
(ร), ๋๋์
(รท..
[C++, Golang] 11729๋ฒ: ํ๋
ธ์ด ํ ์ด๋ ์์
[C++, Golang] 11729๋ฒ: ํ๋ ธ์ด ํ ์ด๋ ์์
2020.07.10ํด๋น ๊ธ์ ๋ด์ฉ์ ์ต์ ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ ๊ธ์ด์ด์ ์ฃผ๊ด์ ์ธ ํ์ด์
๋๋ค. ๋ ์ข์ ํ์ด๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค(__) ๋งํฌ https://www.acmicpc.net/problem/11729 11729๋ฒ: ํ๋
ธ์ด ํ ์ด๋ ์์ ์ธ ๊ฐ์ ์ฅ๋๊ฐ ์๊ณ ์ฒซ ๋ฒ์งธ ์ฅ๋์๋ ๋ฐ๊ฒฝ์ด ์๋ก ๋ค๋ฅธ n๊ฐ์ ์ํ์ด ์์ฌ ์๋ค. ๊ฐ ์ํ์ ๋ฐ๊ฒฝ์ด ํฐ ์์๋๋ก ์์ฌ์๋ค. ์ด์ ์๋์น๋ค์ด ๋ค์ ๊ท์น์ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ ์ฅ๋์์ ์ธ ๋ฒ์งธ ์ฅ๋๋ก www.acmicpc.net ๋ฌธ์ ์ค๋ช
์ธ ๊ฐ์ ์ฅ๋๊ฐ ์๊ณ ์ฒซ ๋ฒ์งธ ์ฅ๋์๋ ๋ฐ๊ฒฝ์ด ์๋ก ๋ค๋ฅธ n๊ฐ์ ์ํ์ด ์์ฌ ์๋ค. ๊ฐ ์ํ์ ๋ฐ๊ฒฝ์ด ํฐ ์์๋๋ก ์์ฌ์๋ค. ์ด์ ์๋์น๋ค์ด ๋ค์ ๊ท์น์ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ ์ฅ๋์์ ์ธ ๋ฒ์งธ ์ฅ๋๋ก ์ฎ๊ธฐ๋ ค ํ๋ค. ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ง์ ๋ค๋ฅธ ํ..