๐ฉ #include ๐ฉ ์ด๋ฆ์ด first, second์ธ ๋ ๊ฐ์ ๋ณ์๋ฅผ ์ ์ฅํ ์ ์๋ struct first๊ฐ 1์ด๊ณ , second๊ฐ 2์ธ pair์ ๋ง๋ค๊ธฐ ์ํด, pair๋ฅผ ์ ์ธํ ํ, ๊ฐ ๋ฉค๋ฒ ๋ณ์(frist, second)๋ฅผ ์ด๊ธฐํํด์ฃผ๋ ๊ฒ์ด ์๋๋ผ, make_pair๋ฅผ ํตํด ๋ฐ๋ก ๋ง๋ค ์ ์๋ค. ๐ฉ ์ฉ๋ ์ด์ฐจ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค ์ด์ฐจ์ ์ขํํ๋ฉด์์์ ์ขํ ์ ์ ๋ฒํธ์ ํด๋น ์ ์ ๋ฒํธ๊น์ง์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๋ฌถ์ด์ ์ ์ฅํด์ผํ๋ ๊ฒฝ์ฐ // pair ์ ์ธ pair p; pair p; // pair ์์ฑ int a = 1, b = 2; pair p = make_pair(a, b); pair p = make_pair(1, 2); // pair์ ๋ฉค๋ฒ ๋ณ์์ ์ ๊ทผ int valA = p.first; int valB..
๐ฉ๐ป ํ๋ก๊ทธ๋๋ฐ
๐ฉ #include ๐ฉ ์ฌ์ด์ฆ๊ฐ ์ ๋์ ์ธ ๋ฐฐ์ด ์ฉ๋ : ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ชจ๋ ๊ฒฝ์ฐ ๋์ ๋ฐฐ์ด์ ๊ตฌํํ ๊ฒ์ผ๋ก, ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํ๋ค. v.size() v์ ์ฌ์ด์ฆ (๋ฌผ๋ฆฌ์ ์ธ ์ ์ฅ ์ฉ๋์ด ์๋ ์์์ ๊ฐ์)๋ฅผ ๋ฆฌํด v.resize(new_size) v๋ฅผ new_size๋ก ์ฌ์ด์ฆ๋ฅผ ๋ฐ๊ฟ์ค v.empty() v์ ์ฌ์ด์ฆ๊ฐ 0์ธ์ง ์๋์ง๋ฅผ ํ์ธ v.begin() v์ 0๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator ๋ฆฌํด v.end() v์ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator ๋ฆฌํด v.front() v์ 0๋ฒ์งธ ์์๋ฅผ ๋ฆฌํด v.back() v์ ๋ง์ง๋ง ์์๋ฅผ ๋ฆฌํด v.push_back(val) v์ ๋์ val๋ฅผ ์ถ๊ฐ v.pop_back() v์ ๋ง์ง๋ง ์์๋ฅผ ์ญ์ v.clear() v์ ๋ชจ๋ ..
๐ฉ ์ด๋ฆ๊ณต๊ฐ์ ์๋ฆฌ ์ด๋ฆ๊ณต๊ฐ : ํ๋ก์ ํธ์ ์งํ์ ์์ด์ ๋ฐ์ํ ์ ์๋ ์ด๋ฆ์ ์ถฉ๋์ ๋ง์ ๋ชฉ์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ ์กด์ฌํ๋ ์ด๋ฆ๊ณต๊ฐ์ด ๋ค๋ฅด๋ฉด ๋์ผํ ์ด๋ฆ์ ํจ์ ๋ฐ ๋ณ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. :: ๋ฒ์ ์ง์ ์ฐ์ฐ์ namespace BestComImpl{ void SimpleFunc(void){ cout
๐ ํจ์์ ์ธ๋ผ์ธํ ํจ์์ ๋ชธ์ฒด๊ฐ ํจ์์ ํธ์ถ๋ฌธ์ ๋์ ํ๋ค. ๐ ๋งคํฌ๋ก ํจ์ #define SQUARE(x) ((x)*(x)) int main(void){ cout
int MyFunc(int num){ num++; return num; } int MyFunc(int a, int b){ return a+b; } int main(void){ MyFunc(20); // MyFunc(int num) ํจ์ ํธ์ถ MyFunc(30, 40); // MyFunc(int a, int b) ํจ์ ํธ์ถ return 0; } C++์ ํจ์ ํธ์ถ ์ 'ํจ์์ ์ด๋ฆ'๊ณผ '์ ๋ฌ๋๋ ์ธ์์ ์ ๋ณด'๋ฅผ ๋์์ ์ฐธ์กฐํ์ฌ ํธ์ถํ ํจ์๋ฅผ ๊ฒฐ์ ํ๋ค. ๋ฐ๋ผ์ ๋งค๊ฐ๋ณ์์ ์ ์ธ์ด ๋ค๋ฅด๋ค๋ฉด ๋์ผํ ์ด๋ฆ์ ํจ์๋ ์ ์ ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ํํ์ ํจ์ ์ ์๋ฅผ ๊ฐ๋ฆฌ์ผ 'ํจ์ ์ค๋ฒ๋ก๋ฉ'์ด๋ผ ํ๋ค. ๐ ํจ์ ์ค๋ฒ๋ก๋ฉ ์กฐ๊ฑด (์๋ 3๊ฐ ์กฐ๊ฑด ๋ชจ๋ ๋ง์กฑ) 1. ๋ฐํํ์ด ๊ฐ์ ๊ฒ 2. ํจ์์ ์ด๋ฆ์ด ๊ฐ์ ๊ฒ 3. ๋งค๊ฐ๋ณ..
๐ฉ ํค๋ํ์ผ ์ ์ธ #include ๐ฉ ์ถ๋ ฅ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ std::cout > val2; ์
๋ ฅํ ๋ ์คํ์ด์ค๋ฐ/์ํฐ/ํญ๊ณผ ๊ฐ์ ๊ณต๋ฐฑ์ ํตํด์ ์
๋ ฅํ๋ฉด ๋๋ค. ๐ ๋ฌธ์์ด ์
์ถ๋ ฅ๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค. char name[100]; std::cin >> name; ๐ฉ ๋ณ์์ ์ ์ธ ์์น ํจ์์ ์ค๊ฐ ๋ถ๋ถ์์๋ ๋ณ์์ ์ ์ธ์ด ๊ฐ๋ฅํ๋ค(๋ณ์์ ์ ์ธ ์์น์ ์ ํ์ ๋์ง ์๋๋ค). ์ถ๋ ฅ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์
๋ ฅ์์๋ ๋ณ๋์ ์์ ์ง์ ์ด ๋ถํ์
๐ฉ ๋ค์ ์ฑ์ง์ ๋ง์กฑํ๋ ๊ท ํ ํ์ ํธ๋ฆฌ 2-๋
ธ๋ ๐ 1๊ฐ์ ํค์ 2๊ฐ์ ์์์ ๊ฐ๋ ๋
ธ๋ 3-๋
ธ๋ ๐ 2๊ฐ์ ํค์ 3๊ฐ์ ์์์ ๊ฐ๋ ๋
ธ๋ 4-๋
ธ๋ ๐ 3๊ฐ์ ํค์ 4๊ฐ์ ์์์ ๊ฐ๋ ๋
ธ๋ ๊ฐ ๋
ธ๋์ ํ ํค์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ์๋ ๋ชจ๋ ํค ๊ฐ์ ๊ทธ ํค ๊ฐ๋ณด๋ค ์๋ค. ๊ฐ ๋
ธ๋์ ํ ํค์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ์๋ ๋ชจ๋ ํค ๊ฐ์ ๊ทธ ํค ๊ฐ๋ณด๋ค ํฌ๋ค. ๐ ๋
ธ๋์ ๊ตฌ์กฐ ๐ฉ ํ์ ๐ฉ ์ฝ์
ํ์ ๊ณผ์ ์์ 4-๋
ธ๋๋ฅผ ๋ง๋๋ฉด ํญ์ ๋
ธ๋ ๋ถํ ์ ์ฐ์ ์ํ ๐ ๋
ธ๋ ๋ถํ ๋
ธ๋ ๋ถํ ์ ์ ํ ๋ถ๋ชจ๊ฐ 2-๋
ธ๋์ธ 4-๋
ธ๋์ธ ๊ฒฝ์ฐ ๐ ์ค๊ฐ ํค๋ฅผ ๋ถ๋ชจ๋ก ๋ณด๋ด์ด 3-๋
ธ๋์ ์ฐ๊ฒฐ๋ 2๊ฐ์ 2-๋
ธ๋๋ก ๋ณํ ๋ถ๋ชจ๊ฐ 3-๋
ธ๋์ธ 4-๋
ธ๋์ธ ๊ฒฝ์ฐ ๐ 4-๋
ธ๋์ ์ฐ๊ฒฐ๋ 2๊ฐ์ 2-๋
ธ๋๋ก ๋ณํ ๋ฃจํธ๊ฐ 4-๋
ธ๋์ธ ๊ฒฝ์ฐ ๐ 3๊ฐ์ 2-๋
ธ๋๋ก ๋ณํ & ๋ฃจ..
๐ ์ด์ง ํธ๋ฆฌ ํ ๋
ธ๋์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ์๋ ๋ชจ๋ ํค ๊ฐ์ ๊ทธ ๋
ธ๋์ ํค ๊ฐ๋ณด๋ค ์๋ค. ํ ๋
ธ๋์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ์๋ ๋ชจ๋ ํค ๊ฐ์ ๊ทธ ๋
ธ๋์ ํค ๊ฐ๋ณด๋ค ํฌ๋ค. ๐ฉ ๋ฃจํธ ๋
ธ๋์์๋ถํฐ ์์ํด์ ๊ฐ์ ํฌ๊ธฐ ๊ด๊ณ์ ๋ฐ๋ผ ํธ๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ด๋ ค๊ฐ๋ฉด์ ํ์ ์งํ ๐ฉ ์ฝ์
์ฐ์ฐ ์ฝ์
ํ ์์๋ฅผ ํ์ํ ํ, ํ์์ด ์คํจํ๋ฉด ํด๋น ์์น์ ์์ ๋
ธ๋๋ก์ ์ ๋
ธ๋๋ฅผ ์ถ๊ฐ ๐ฉ ์ญ์ ์ฐ์ฐ ์ญ์ ๋๋ ๋
ธ๋์ ์์ ๋
ธ๋์ ๊ฐ์์ ๋ฐ๋ผ ๊ตฌ๋ถํด์ ์ฒ๋ฆฌ 1. ์์ ๋
ธ๋๊ฐ ์๋ ๊ฒฝ์ฐ ๐ ๋จ๋ ๋
ธ๋๊ฐ ์์ด ์์น ์กฐ์ ๋ถํ์ 2. ์์ ๋
ธ๋๊ฐ 1๊ฐ์ธ ๊ฒฝ์ฐ ๐ ์์ ๋
ธ๋๋ฅผ ์ญ์ ๋๋ ๋
ธ๋์ ์์น๋ก ์ฌ๋ฆฌ๋ฉด์ ์๋ธํธ๋ฆฌ ์ ์ฒด๋ ๋ฐ๋ก ์ฌ๋ฆผ 3. ์์ ๋
ธ๋๊ฐ 2๊ฐ์ธ ๊ฒฝ์ฐ ๐ ์ญ์ ํ ๋
ธ๋ ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ์ ๊ฐ์ฅ ํฐ ์์์ ํด๋น ๋
ธ๋์ ์๋ฆฌ์ ์ฌ๋ฆฐ๋ค ..
๐ฉ ์ ๋ ฌ๋ ๋ฆฌ์คํธ ํํ๋ก ์ฃผ์ด์ง ์์๋ค์ ์ ๋ฐ์ฉ ์ค์ฌ ๊ฐ๋ฉด์ ์ํ๋ ๊ฐ์ ๊ฐ์ง ์์๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ์ด ์ ์ฉ๋จ ์ฃผ์ด์ง ๋ฐฐ์ด์ด ์ ๋ ฌ๋์ด ์์ง ์์ผ๋ฉด ์ ๋ ฌ ์ํ ๐ฉ ํ์ ๋ฐฉ๋ฒ ๋ฐฐ์ด์ ๊ฐ์ด๋ฐ ์์ A[mid]์ ํ์ํค key๋ฅผ ๋น๊ต ๐ ์ค๊ฐ ๊ฐ์ ๊ตฌํ๋ ๋ฐฉ์ 1. mid : low + (high-low) / 2 2. mid : (low + high) / 2 ๐ low + high ๊ฐ์ด (2^31-1)์ ๋ฒ์๋ณด๋ค ํฌ๋ค๋ฉด ์์๊ฐ์ผ๋ก ์ค๋ฒํ๋ก์ฐ ๋ฐ์ ๊ฐ๋ฅ 1. A[mid] = key ๐ ํ์ ์ฑ๊ณต (์ธ๋ฑ์ค mid ๋ฐํ ํ ์ข
๋ฃ) 2. A[mid] key ๐ ์ด์ง ํ์(์๋ ํฌ๊ธฐ์ 1/2์ธ ์ผ์ชฝ ๋ถ๋ถ๋ฐฐ์ด) ์ํ ..
๐ ๋ค์ํ ํ์ ๋ฐฉ๋ฒ ๋ฆฌ์คํธ ํํ ๐ ์์ฐจ ํ์, ์ด์ง ํ์ ํธ๋ฆฌ ํํ ๐ ์ด์ง ํ์ ํธ๋ฆฌ, 2-3-4 ํธ๋ฆฌ, ๋ ๋-๋ธ๋ ํธ๋ฆฌ, B-ํธ๋ฆฌ ํด์ ํ
์ด๋ธ ๐ ํด์ ํจ์, ์ถฉ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ ๐ฉ ๋ฆฌ์คํธ ํํ๋ก ์ฃผ์ด์ง ์์๋ค์ ์ฒ์๋ถํฐ ํ๋์ฉ ์ฐจ๋ก๋ก("์์ฐจ") ๋น๊ตํ๋ฉด์ ์ํ๋ ๊ฐ์ ๊ฐ๋ ์์๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ // A[] : ์
๋ ฅ๋ฐฐ์ด // n : ์
๋ ฅ ํฌ๊ธฐ (ํ์ํ ๋ฐ์ดํฐ์ ๊ฐฏ์) // x : ํ์ ํค SequentialSearch(A[ ], n, x){ i = 0; while (i < n && A[i] != x) i = i + 1; return (i); } // x๊ฐ ๋ฐฐ์ด ๋ด์ ์กด์ฌํ๋ฉด ์ธ๋ฑ์ค, ์๋๋ฉด n์ ๋ฐํ ๐ ์ฝ์
๋ฐ ์ญ์ ๐ฉ ์๊ฐ ๋ณต์ก๋ ํ์, ์ญ์ : O(n) ์ฝ์
: O(1) ๐ฉ ์ ๋ ฌ๋์ง ์๊ณ ํฌ๊ธฐ๊ฐ ์..
๐ฉ ๋ฃจํธ ๋
ธ๋์์ ์์ํ์ฌ ์ธ์ ํ ๋
ธ๋์์ ์์ํด์ ์ธ์ ํ ๋
ธ๋๋ฅผ ๋จผ์ ํ์ ์ง๊ธ ์์น์์ ๊ฐ ์ ์๋ ๊ฒ๋ค์ ๋ชจ๋ ํ(queue)์ ๋ฃ๋ ๋ฐฉ์ ํ์ ๋ฃ์ ์์ ์ ํด๋น ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ค๊ณ ์ฒดํฌํด์ผ ํ๋ค. cf. DFS๋ ์ผ๋จ ๋ค์ด๊ฐ์ ์ฒดํฌ ํ์ while ๋ฐ๋ณต๋ฌธ ํ์ฉ ๐ฉ ๋ฐฉ๋ฒ ๊ทธ๋ํ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ฐฉ๋ฌธํ ์ ์์ด์ผ ํ๊ณ , ๋ฐฉ๋ฌธํ ๋
ธ๋๋ค์ ๋ค์ ํ์ํ ์ผ์ด ์๋๋ก ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋์ด์ผ ํ๋ค. 1) ์์ ์ ์ A๋ฅผ ํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค. A 2) ํ์์ A๋ฅผ ๊บผ๋ด๊ณ , ์ธ์ ๋
ธ๋ B, C๋ฅผ ํ์ ์ฝ์
ํ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค. B C 3) ํ์์ B๋ฅผ ๊บผ๋ด๊ณ , ์ธ์ ๋
ธ๋ D, E๋ฅผ ํ์ ์ฝ์
ํ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค. C D E 4) ํ์์ C๋ฅผ ๊บผ๋ด๊ณ , ์ธ์ ๋
ธ๋ F, G๋ฅผ ํ์ ์ฝ์
ํ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค. D E F G 5) ์..
๐ฉ ๊ทธ๋ํ์์ ๊น์ ๋ถ๋ถ์ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ stack์ ์ด์ฉํ์ฌ ๊ฐ ์ ์๋ ๋งํผ ์ต๋ํ ๊น์ด ๊ฐ๋ ๊ฒ์ด๊ณ , ๋ ์ด์ ๊ฐ ๊ณณ์ด ์๋ค๋ฉด ์ด์ ์ ์ ์ผ๋ก ๋์๊ฐ๋ค๋ ๊ฒ ์ฃผ๋ก ๋ฐ๋ณต๋ฌธ(Stack) / ์ฌ๊ท๋ฌธ(์ํ ์๊ณ ๋ฆฌ์ฆ)์ ํตํ์ฌ ๊ตฌํ๋๋ค. ๐ฉ ๋ฐฉ๋ฒ ๊ทธ๋ํ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ฐฉ๋ฌธํ ์ ์์ด์ผ ํ๊ณ , ๋ฐฉ๋ฌธํ ๋
ธ๋๋ค์ ๋ค์ ํ์ํ ์ผ์ด ์๋๋ก ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋์ด์ผ ํ๋ค. 1. ํ์ฌ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ๊ฒ์ผ๋ก ํ์ 2. ๋ฐฉ๋ฌธํ ํ์๊ฐ ๋์ด ์์ง ์์ ๊ฐ๊ฐ์ ์ธ์ ํ ์ ์ ์ ํ์ 3. ๋ ์ด์ ๋ฐฉ๋ฌธํ์ง ์์ ์ ์ ์ด ์์ผ๋ฉด ์ด์ ์ ์ ์ ์ญ์ถ์ 4. ๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ ๋๊น์ง ํ๋ก์ธ์ค ๋ฐ๋ณต ๐ ๋ฐ๋ณต ๊ตฌํ (Stack ํ์ฉ) 1) ์์ ์ ์ A๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค. A 2) ์คํ์ ์ต์๋จ ๋
ธ๋ A๋ ๊บผ๋ด ์ถ๋ ฅํ๊ณ , ๊ทธ ..