๊ทธ๋ํ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํ ๋๋, ๋ฌธ์ ์ํฉ์ ๊ทธ๋ํ๋ก ๋ชจ๋ธ๋งํ ํ ํธ๋ ๊ฒ์ด ๋ณดํธ์ ์ด๋ค. ์ด ๋, ๋ชจ๋ธ๋งํ ๊ทธ๋ํ์ ์ฐ๊ฒฐ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค. ๐ 1. ์ธ์ ํ๋ ฌ 2. ์ธ์ ๋ฆฌ์คํธ ๐ฉ ์ธ์ ํ๋ ฌ ๊ทธ๋ํ์ ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ์ด์ฐจ์ ๋ฐฐ์ด๋ก ๋ํ๋ด๋ ๋ฐฉ์ ์ธ์ ํ๋ ฌ์ adj[][]๋ผ๊ณ ํ๋ค๋ฉด, adj[i][j]์ ๋ํด์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ ๊ฐ๋ฅ adj[i][j] : ๋
ธ๋ i์์ ๋
ธ๋ j๋ก ๊ฐ๋ ๊ฐ์ ์ด ์๋ค๋ฉด 1, ์๋๋ฉด 0 cf. ๋ง์ฝ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ผ๋ฉด 1 ๋์ ์ ๊ฐ์ค์น์ ๊ฐ์ ์ง์ ๋ฃ์ด์ฃผ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ ๊ฐ๋ฅํ๋ค. ๐ ์์ ์ ํฅ ๊ทธ๋ํ๊ฐ ์๋ ๋ฌดํฅ ๊ทธ๋ํ์์๋, ๋
ธ๋ i ๐ ๋
ธ๋ j ๋ผ๋ ๋ง์, ๋
ธ๋ j ๐ ๋
ธ๋ i๋ผ๋ ์๋ฏธ์ด๋ค. ๋ฐ๋ผ์, ์ธ์ ํ๋ ฌ์ด ๋๊ฐ์ฑ๋ถ(i=j์ธ ์์๋ค)์ ๊ธฐ์ค์ผ..
๐ฉ๐ป ํ๋ก๊ทธ๋๋ฐ
๐ฉ ์์ฑ์ ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ์์ ์ ์๋์ผ๋ก ํธ์ถ๋๋ ๋ฉค๋ฒ ํจ์๋ก ํด๋์ค ์ด๋ฆ๊ณผ ๋์ผํ ๋ฉค๋ฒ ํจ์์ด๋ค. ๋, ํจ์ ํน์ ์ ๋ฆฌํด ํ์
์ ์ง์ ํ๋ฉด ์๋๋ค. class Circle { Circle(); Circle(int radius); }; Circle::Circle() { radius = 10; cout
๋ฉค๋ฒ๋ณ์์ ์ธ๋ถ์ ๊ทผ์ ํ์ฉํ๋ฉด(public ์ฌ์ฉ), ์๋ชป๋ ๊ฐ์ด ์ ์ฅ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ฐ๋ผ์, ๋ฉค๋ฒ๋ณ์์ ์ธ๋ถ์ ๊ทผ์ ๋ง๊ฒ ๋๋๋ฐ, ์ด๋ฅผ ๊ฐ๋ฆฌ์ผ ์ ๋ณด ์๋์ด๋ผ ํ๋ค. EX) public int x; // 0์ด์ 100์ดํ ์กฐ๊ฑด์ ๋ง๋ ๊ฐ์ด ๋ค์ด์จ๋ค๋ ๋ฒ์ด ์๋ค. ๐ ํด๋์ค์ ๋ฉค๋ฒ๋ณ์๋ฅผ private์ผ๋ก ์ ์ธํ๊ณ , ํด๋น ๋ณ์์ ์ ๊ทผํ๋ ํจ์๋ฅผ ๋ณ๋๋ก ์ ์ํด์, ์์ ํ ํํ๋ก ๋ฉค๋ฒ๋ณ์์ ์ ๊ทผ์ ์ ๋ํ๋ ๊ฒ์ด ๋ฐ๋ก '์ ๋ณด ์๋'์ด๋ฉฐ, ์ด๋ ์ข์ ํด๋์ค๊ฐ ๋๊ธฐ ์ํ ๊ธฐ๋ณธ ์กฐ๊ฑด์ด๋ค. ๐ ๋ณ๋๋ก ์ ์๋ ํจ์์์ ์กฐ๊ฑด์ ๋ง๋ ๊ฐ์ ๋ถ๋ฌ์ค๋๋ก ์กฐ๊ฑด์ ์ค์ ํ ์ ์๋ค. ๐ ํจ์๋ง ํ ๋ฒ ์ ์ ์๋๋ฉด ์๋ชป๋ ์ ๊ทผ์ ์์ฒ์ ์ผ๋ก ์ฐจ๋จ๋๋ค. ๐ฉ const ํจ์ const ํจ์ ๋ด์์๋ ๋์ผ ํด๋์ค์ ์ ์ธ๋ ๋ฉค๋ฒ๋ณ์์..
๐ ๊ฐ์ฒด์ ๋ํ ๊ฐ๋จํ ์ ์ ์ฌ์ ์ ์๋ฏธ : ๋ฌผ๊ฑด/๋์ ๐ฉ ๊ฐ์ฒด ์ค์ฌ์ ํ๋ก๊ทธ๋๋ฐ "๋๋ ๊ณผ์ผ์ฅ์์๊ฒ ๋ ๊ฐ์ ์ฌ๊ณผ๋ฅผ ๊ตฌ๋งคํ๋ค" ๊ฐ์ฒด ๐ ๋, ๊ณผ์ผ์ฅ์, ์ฌ๊ณผ ๋ฐ์ดํฐ ๐ ๋ ๊ฐ ํ์, ๊ธฐ๋ฅ ๐ ๊ตฌ๋งคํ๋ค. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์๋ ๋, ๊ณผ์ผ์ฅ์, ์ฌ๊ณผ๋ผ๋ ๊ฐ์ฒด๋ฅผ ๋ฑ์ฅ์์ผ ๋ ๊ฐ์ ์ฌ๊ณผ ๊ตฌ๋งค๋ผ๋ ํ์๋ฅผ ์ค์ฒดํํ๋ค. ํ์ค์ ์กด์ฌํ๋ ์ฌ๋ฌผ๊ณผ ๋์, ๊ทธ๋ฆฌ๊ณ ๊ทธ์ ๋ฐ๋ฅธ ํ๋์ ์๋ ๊ทธ๋๋ก ์ค์ฒดํ์ํค๋ ํํ์ ํ๋ก๊ทธ๋๋ฐ ๐ฉ ๊ฐ์ฒด = ๋ฐ์ดํฐ + ๊ธฐ๋ฅ ๐ ๊ฐ์ฒด ํํ (ํ์) ๊ณผ์ผ์ฅ์๋ ๊ณผ์ผ์ ํ๋ค. (์ํ) ๊ณผ์ผ์ฅ์๋ ์ฌ๊ณผ 20๊ฐ, ์ค๋ ์ง 10๊ฐ๋ฅผ ๋ณด์ ํ๊ณ ์๋ค. ๐ ๋ฐ์ดํฐ ํํ(๋ณ์ ์ ์ธ) ๋ณด์ ํ๊ณ ์๋ ์ฌ๊ณผ์ ์ : int numOfApples; ํ๋งค ์์ต : int myMoney; ๊ณผ์ผ ๊ฐ : const int A..
์ฐ๊ด์๋ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๋ฌถ์ผ๋ฉด ํ๋ก๊ทธ๋จ์ ๊ตฌํ ๋ฐ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๋ค. ๐ ๊ตฌ์กฐ์ฒด๋ ์ฐ๊ด์๋ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๋ฌถ๋ ๋ฌธ๋ฒ์ ์ฅ์น ์ฐ๊ด์๋ ๋ฐ์ดํฐ๋ค์ ์์ฑ ๋ฐ ์๋ฉธ์ ์์ ์ด ์ผ์นํ๊ณ , ์ด๋ ๋ฐ ์ ๋ฌ์ ์์ , ๋ฐฉ๋ฒ์ด ์ผ์นํ๊ธฐ ๋๋ฌธ์ ํ๋์ ์๋ฃํ์ผ๋ก ๋ฌถ์ด์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ฉ์ดํ๋ค. struct Car{ char gamerID[ID_LEN]; int fuelGauge; int curSpeed; }; ๐ฉ ๊ตฌ์กฐ์ฒด ๋ณ์ ์ ์ธ, ์์ฑ // ๊ตฌ์กฐ์ฒด ์ ์ธ Car basicCar; // cf. struct Car basicCar; // ๊ตฌ์กฐ์ฒด ์์ฑ Car run99 = {"run99", 100, 0}; struct ํค์๋์ ์๋ต์ ์ํ typedef ์ ์ธ ๋ถํ์ ๊ตฌ์กฐ์ฒด ๋ณ์๋ง๋ค ํจ์๊ฐ ๋
๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ ๊ตฌ์กฐ๋ ์๋์ง๋ง, ๋
ผ..
int num = 2010; ๋ณ์์ ์ ์ธ์ผ๋ก num1์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ ๋น๋๋ค. int &num2 = num1; ์ฐธ์กฐ์์ ์ ์ธ์ผ๋ก ์ธํด num1์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ num2๋ผ๋ ์ด๋ฆ์ด ์ถ๊ฐ๋ก ๋ถ๊ฒ๋๋ค. num1์ด ํ๋ ๋ชจ๋ ์ฐ์ฐ์ num2๋ก ํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ธ๋ค. ๐ฉ ์ฐธ์กฐ์๋ ๊ธฐ์กด์ ์ ์ธ๋ ๋ณ์์ ๋ถ์ด๋ '๋ณ์นญ', ๋ณ์์ ์ด๋ฆ๊ณผ ์ฌ์ค์ ์ฐจ์ด๊ฐ ์๋ค. ๐ฉ ์ฐธ์กฐ์์ ์์๋ ์ ํ์ด ์์ผ๋ฉฐ, ์ฐธ์กฐ์๋ฅผ ๋์์ผ๋ก ์ฐธ์กฐ์๋ฅผ ์ ์ธํ ์๋ ์๋ค. int num1 = 2579; int& num2 = num1; int& num3 = num2; int& num4 = num3; ๐ฉ ์ฐธ์กฐ์์ ์ ์ธ ๊ฐ๋ฅ ๋ฒ์ int &ref = 20; (X) ์์ ๋์์ผ๋ก์ ์ฐธ์กฐ์ ์ ์ธ์ ๋ถ๊ฐ๋ฅ int &ref; (X) ์ฐธ์กฐ์..
๐ฉ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ ๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น๋ฐ๋๋ค. ๐ ๋ฐ์ดํฐ : ์ ์ญ๋ณ์ ์ ์ฅ ๐ ์คํ : ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์ ์ ์ฅ ๐ ํ : ๋์ ์ผ๋ก ํ ๋น์ด ์ด๋ค์ง๋ ์์ญ ๐ฉ c๋ฅผ ๋ํ๊ณ .h๋ฅผ ๋นผ๋ผ #include ๐ #include #include ๐ #include #include ๐ #include #include ๐ #include
โ๏ธconst = ๋ณ์๋ฅผ ์์ํ ์ํจ๋ค (๋ณํ์ง ๋ชปํ๊ฒ ๋ง๋ ๋ค) ๐ฉ const int * ptr = &a ์์์ ๋ํ ํฌ์ธํฐ, ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋์์ ์์ํ ๊ฐ ๋ณ๊ฒฝX ์ฃผ์ ๋ณ๊ฒฝO ๊ฐ๋ฆฌํค๋ ์๋ณธ ๋ณ์ ์์ฒด๋ฅผ ์์ํX (์์ ์ทจ๊ธ) ๐ฉ int * const ptr = &a ์์ ํฌ์ธํฐ, ํฌ์ธํฐ ์์ฒด๋ฅผ ์์ํ ๊ฐ ๋ณ๊ฒฝO ์ฃผ์ ๋ณ๊ฒฝX ๐ฉ const int * const ptr = &a ์์์ ๋ํ ์์ ํฌ์ธํฐ ๊ฐ ๋ณ๊ฒฝX ์ฃผ์ ๋ณ๊ฒฝX ๐ ๊ฐ ๋ณ๊ฒฝ *ptr = 1; ๐ ์ฃผ์ ๋ณ๊ฒฝ ptr = &b; ๐ฉ const๋ก ์ ์ธ๋ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก const๋ก ์ ์ธ๋์ง ์์ ๋ฉค๋ฒํจ์์ ํธ์ถ์ ๋ถ๊ฐ๋ฅ ํจ์์ const ์ ์ธ ์ ๋ฌด๋ ํจ์ ์ค๋ฒ๋ก๋ฉ์ ์กฐ๊ฑด์ด ๋๋ค. const int a; void Func(){} void Func..
๐ฉ key๋ง ์๋ map ํน์ ์ ๋ ฌ๋ ์งํฉ set์ map๊ณผ ๊ตฌ์กฐ๊ฐ ๋งค์ฐ ์ ์ฌํ๋ค. ๋จ, key๋ง ์๊ณ value๊ฐ ์๋ map์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ๋ฐ๋ผ์, ์ฌ์ฉ๋ฒ๋ map๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค. ์ ๋ ฌ๋ ์งํฉ์ด๋ผ๊ณ ์ ์ํ ์ด์ ๋ set์ด ๊ฐ๋ ๊ฐ๋ค์ด ์ค๋ณต์ ํ๋ฝํ์ง ์๊ณ ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. ๐ฉ ํน์ ๊ฐ์ ๋ํด ๊ฒ์์ ๋น ๋ฅด๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ๐ฉ #include s.size() s์ ๋
ธ๋ ๊ฐ์๋ฅผ ๋ฆฌํด s.empty() s์ ์ฌ์ด์ฆ๊ฐ 0์ธ์ง ์๋์ง๋ฅผ ํ์ธ s.begin() s์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator ๋ฆฌํด s.end() s์ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator ๋ฆฌํด s.insert(k) s์ ๊ฐ์ด k์ธ ๋
ธ๋ ์ถ๊ฐ s.erase(k) s์ ๊ฐ์ด k์ธ ๋
ธ๋ ์ญ์ s.find(k) s์์ ..
๐ฉ ์ธ๋ฑ์ค๋ก int๊ฐ ์๋ ๋ค๋ฅธ ์๋ฃํ์ ์ฌ์ฉํ ์ ์๋ ๋ฐฐ์ด (ํธ์์) map์ ๋ด๋ถ์ ์ธ ๊ตฌ์กฐ๋ ๊ฐ ๋
ธ๋๊ฐ key์ value์ ์์ผ๋ก ์ด๋ฃจ์ด์ง 'ํธ๋ฆฌ'์ด๋ค. ํนํ ๊ฒ์, ์ฝ์
, ์ญ์ ๋ฑ์ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด ๊ท ํ ์ด์ง ํธ๋ฆฌ ์ค์ ํ๋์ธ '๋ ๋-๋ธ๋ ํธ๋ฆฌ'๋ก ๊ตฌํ๋์ด ์๋ค. ๊ฒ์ ์๋๊ฐ ํนํ ๋น ๋ฅธ๋ฐ ์ด๋ key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๐ฉ ์ฐ๊ด์๋ ๋ ๊ฐ์ ํจ๊ป ๋ฌถ์ด์ ๊ด๋ฆฌํ๋, ๊ฒ์์ ๋น ๋ฅด๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ๐ฉ #include map์ ์ค๋ณต ๋ถ๊ฐํ key์ value ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋
ธ๋์ ํธ๋ฆฌ๋ผ๊ณ ํ ์ ์๋ค. ๊ฐ์ key ๊ฐ์ ๊ฐ๋ ๋
ธ๋๋ฅผ ์ถ๊ฐํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ํด๋น key ๊ฐ์ ๊ฐ๊ณ ์๋ ์๋ ๋
ธ๋์ value ๊ฐ์ ๋ฎ์ด ์์์ง๊ฒ ๋๋ค. map์ ์์์ ์ ๊ทผํ ๋, ๋ฐ๋ณต์(it..
๐ฉ ๊ท ํ ํ์ ํธ๋ฆฌ ์ด์ง ํธ๋ฆฌ๋ฅผ ํ์ฅํด ํ๋์ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์์ ๋
ธ๋์ ์ต๋ ์ซ์๊ฐ 2๋ณด๋ค ํฐ ํธ๋ฆฌ ๊ตฌ์กฐ ํค์ ๊ฐ์ (t-1)~(2t-1) ๊ฐ ์์ ๋
ธ๋์ ๊ฐ์ t~2t ๊ฐ ๐ฉ ์ฑ์ง 1. ๋
ธ๋์๋ 2๊ฐ ์ด์์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ์ ์์ผ๋ฉฐ, ํญ์ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ๋๋ค. 2. ๋ด๋ถ ๋
ธ๋๋ ceil(m/2) ~ m ๊ฐ์ ์์์ ๊ฐ์ง ์ ์๋ค. ์ต๋ m๊ฐ์ ์์์ ๊ฐ์ง ์ ์๋ Bํธ๋ฆฌ๋ฅผ m์ฐจ Bํธ๋ฆฌ๋ผ ํ๋ค. ceil() ํจ์๋ ์ฌ๋ฆผ ํจ์์ด๋ค. ์ฆ, ceil(3/2) = 2์ด๋ค. ์ฆ, 3์ฐจ Bํธ๋ฆฌ์ ๋ฆฌํ ๋
ธ๋์ ๋ฃจํธ๋
ธ๋๋ฅผ ์ ์ธํ ๋ด๋ถ ๋
ธ๋๋ 2-3๊ฐ์ ์์์ ๊ฐ์ง ์ ์๋ค. 3. ํน์ ๋
ธ๋์ ๋ฐ์ดํฐ(key)๊ฐ K๊ฐ๋ผ๋ฉด, ์์ ๋
ธ๋์ ๊ฐ์๋ K+1๊ฐ์ฌ์ผ ํ๋ค. ํน์ ๋
ธ๋์ ๋ฐ์ดํฐ๊ฐ 2๊ฐ๋ผ๋ฉด, ์์ ๋
ธ๋๋ ..
๐ฉ ์ผ์ข
์ ์๊ธฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ ์ด์ง ํ์ ํธ๋ฆฌ์ ์กฐํ๋ O(logn) ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฒ ๋๋๋ฐ, ๋ฌธ์ ๋ ๊ท ํ์ด ๋ฌด๋์ง ๊ฒฝ์ฐ O(n)๊น์ง ์๊ฐ์ด ์ฆ๊ฐํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๐ ๋ ๋-๋ธ๋ ํธ๋ฆฌ์ ๊ฐ์ฅ ํฐ ํน์ง์ ์ฝ์
, ์ญ์ ๋์ ํธ๋ฆฌ์ ๋ชจ์์ด "๊ท ํ ์กํ๋๋ก" ๊ฐ ๋
ธ๋๋ค์ red or black ์์์ ๊ฐ์ง๋ค๋ ๊ฒ์ด๋ค. ๊ฒ์, ์ฝ์
, ์ญ์ ์ ์ต์
์ ๊ฒฝ์ฐ์์๋ ๋ชจ๋ O(logn)์ด ๋ณด์ฅ๋๋ ์๋ฃ๊ตฌ์กฐ ๐ ์1. map map์ ์ค๋ณต์ ํ์ฉํ์ง ์๋ (key, value) ์์ผ๋ก ์ด๋ฃจ์ด์ง ํธ๋ฆฌ map์ ๋ด๋ถ ๊ตฌํ์ ๊ฒ์, ์ฝ์
, ์ญ์ ๊ฐ O(logn)์ผ๋ก ๋์ํ๋ ๋ ๋-๋ธ๋ ํธ๋ฆฌ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ๐ฉ ์ฑ์ง ๋ฆฌํ ๋
ธ๋๋ ๋ฐ๋ก key๋ data๋ฅผ ํฌํจํ์ง ์์ผ๋ฉฐ, ์ค์ ์ฝ๋์์๋ ๊ตฌํ๋์ง ์๋ "์์ ๊ฐ์์ ๋
ธ๋..