ํฐ์คํ ๋ฆฌ ๋ทฐ
์ผ์ฑ์ ์ DS, DX ๋ถ๋ฌธ ์๊ด์์ด SW์ง๊ตฐ์ผ๋ก ์ ์ฌํ๊ฒ ๋๋ฉด, SW Certi. Pro๋ฅผ ์ทจ๋ํ์ฌ์ผ ํ๋ค. ๋ถ๋ฌธ์ด๋ ํ์ ๋ฐ๋ผ ์ทจ๋์ ๋ง์ด ๊ถ์ฅํ๋ ๊ฒฝ์ฐ๋ ์์ด ๋ถ๋ฐ๋ถ๋ก ๋๋๊ธด ํ๋ค. ํฐ ๊ณต๋ถ๋ฅผ ํ์ง ์์์ง๋ง, 12์์ ์ด์ด ์ข๊ฒ ์ ํ ์ ์๋ ์ ํ์ด ๋์์ผ๋ ์ฝ๋ ํ ์ค์ ์ ๋ชป ์์ฑํด์ ํ๋ฝ ํ ์ด๋ฆฌ์ ๋ฆฌ ์๋์ ๊ฒช๊ณ ๊ณต๋ถํ๋ ๊ณผ์ ์ ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค.
SW certi. Pro?
์ผ์ฑ์ ์ ์ฌ ์ํ ๋์ด๋๋ AD(Advanced)์ด๊ณ , ์ ์ฌ ํ ์ทจ๋์ด ํ์ํ ๋์ด๋๋ Pro(Professional)์ด๋ค. ์ฌ๋ฌ ํ๊ธฐ๋ค์ ์ฐพ์๋ณด๋ฉด AD๋ณด๋ค ์๋นํ ์ด๋ ต๋ค ์ด์ง๋ง, ๊ณต๋ถํด๋ณด๋ฉด ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฌ๋ฆฌ `์ ์ ํ ์๋ฃ๊ตฌ์กฐ ์ฌ์ฉ๊ณผ ์ต์ ํ ๋ฌธ์ ๋ผ์ ๊ฒฐ์ด ๋ฌ๋ผ์ง ๋ฟ์ด๋ค.` ๋ผ๋ ๊ฒ์ ๋๋ผ๊ฒ ๋๋ค. (๊ทธ๋๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํ ์งฌ๋ฐ?๊ฐ ์์ผ๋ฉด ๋น ๋ฅด๊ฒ ์ํ์ ํจ์คํ ์ ์๋ ๊ฒ ๊ฐ๋ค. ๋๋ ์งฌ๋ฐ๊ฐ ๋ถ์กฑํด์ ์๊ฐ๋ณด๋ค ์ค๋ ๊ฑธ๋ ธ๋ค๐) ๊ณผ๊ฑฐ์ ๋ฌ๋ฆฌ ์ ์์ ํ์๊ฐ ๋ง์์ ธ ์ค๋ฌด๊ฐ ๋น๊ต์ ์ ์ ์ ์ฐ์ฐจ ๋ ์ต๋ํ ๋ง์ด ์์ํ์ฌ ์ทจ๋ํ๋ ๊ฒ์ด ๋ฒ ์คํธ๋ผ๊ณ ์๊ฐํ๋ค.
๋์ด์ผ ํ๋ ๋๊ด๋ค!
Python vs C/C++
๋ธ๋ก๊ทธ๋ฅผ ํตํด ์ ์ ์๋ฏ์ด, ์ฝ๋ฉ ํ ์คํธ๋ฅผ Python์ผ๋ก ์ค๋นํ๊ณ C/C++ ๊ธฐ๋ฐ์ ์ฝ๋ฉ ํ ์คํธ๊ฐ ์ต์ํ์ง ์๋ค๋ ๋๊ด์ด ์์๋ค. ๊ทธ๋์ ์ด๊ธฐ์ ์น๋ ๋ ์ํ์๋ `Python์ ์ด๋ ๊ฒ ํ๋ฉด ๋ ํ ๋ฐ... C/C++์์๋ ๋ญ ์จ์ผ ๋์ง..?`๋ผ๋ ์๊ฐ๊ณผ ํจ๊ป ๊ตฌํ์ ํ์ง ๋ชปํ๋ค. ํ์ง๋ง ์ํ์ ์ฌ๋ฌ ๋ฒ ํ๋ฝํ๊ณ C/C++์์ ์ฌ์ฉ๋๋ ๋ค์ํ STL๋ค๊ณผ ์ฌ๋ฌ ์ฌ๋๋ค์ด ์ ์ถํ ์ฝ๋๋ฅผ ์ฐธ์กฐํ๋ฉฐ ๋ง์ด ๋ฐฐ์ฐ๊ณ ๋ด ๊ฒ์ผ๋ก ๋ง๋ค ์ ์์๋ค.
๋ฌธ์ ์ดํด๋ ๋ถ์กฑ!
์ํ์ ๋ณด๋ฉฐ, ํ์ต์ด ๋๊ธฐ ์ ์๋ ๋ฌธ์ ๋ฅผ ์ฝ์ด๋ ์ด๋ค์์ผ๋ก ์ต์ ํํด์ผ ๋๋์ง ๋๋ฌด์ง ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ฆด ์๊ฐ ์์๋ค. ํ์ง๋ง O(N), O(logN) ๋ฑ ์๊ฐ ๋ณต์ก๋ ๊ณ์ฐ์ ํตํด ์ด๋ค ์์ผ๋ก ์ต์ ํ๊ฐ ๊ฐ๋ฅํ์ง ๋ฌธ์ ๋ณ๋ก ๊ณ์ ๊ณ ๋ฏผํ์๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ํ์ ์น๋ฉด ์น ์๋ก ์ด๋ค ์ ํ์ธ์ง, ๊ตฌํ๋์ด ๋ง์ ๋ฌธ์ ์ธ์ง ์ด๋ค ์๋ฃ๊ฐ ํ์ํ์ง ํ๋จํ ์ ์๊ฒ ๋์๋ค.
์์๋๋ฉด ์ข์ ๊ฒ๋ค
๋ฐ์ดํฐ์ ๊ฐฑ์ ์ด ํ์ํ PQ๋ผ๋ฉด, Priority Queue ๊ตฌํํ๊ธฐ ๊ธ์ ์ฐธ์กฐํ์ฌ ์ง์ C๋ก ์์ฝ๋ฉ์ ํ ํ์๊ฐ ์๋ค. ์ด์ธ์๋ `<set>`, `<map>`๋ฑ์ ์ ์ ํ ํ์ฉํ๋ฉด ์ข๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก BFS, DFS๋ฅผ ํตํด ๊ฒฝ๋ก ํ์์ ํ๊ฑฐ๋ ํ์์ ๋ฐ๋ผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ ์ญ๋๋ ํ์ํ๋ค.
๋ํ ๋ฌธ์ ์ ๋ฐ๋ผ ๊ตฌํ๋์ด ๋ง์ ๋ฌธ์ ๊ฐ ์๊ณ , ์์ด๋์ด๋ง ์๊ฐ๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ์ฌ ์๊ฐ๋ณด๋ค ์ฝ๋๊ฐ ๊ธธ์ง ์์ ๋ฌธ์ ๋ค์ด ์๋ค. ๋๋ ์ฌ๋ฌ ๋ฌธ์ ๋ค ์ค ํ์๊ฐ ๋์๊ฒ ๋ณด๋ค ์ ํฉํ๋ค๊ณ ํ๋จํ๊ณ ํด๋น ๋ฌธ์ ๊ฐ ๋์ค๋ฉด ๋ง์ถ๊ฒ ๋ค๋ ์๊ฐ์ผ๋ก ๊ณต๋ถ๋ฅผ ์ด์ด๋๊ฐ๋ค.
STL ๊ฟํ๋ค
for
#include <list>
using namespace std;
int arr[5] = { 3, 4, 5, 6, 7 };
int main() {
for (auto& value : arr)
value++;
}
- `auto value : arr`๋ก ํ๊ฒ ๋๋ฉด, ๊ฐ์ฒด ํฌ๊ธฐ๋งํผ ๋ณต์ฌ๊ฐ ๋ฐ์ํ๊ณ ๊ฐ์ ์์ ํ ์ ์๋ค.
- ๊ธฐ๋ณธ ํ์ ๋ฟ ์๋๋ผ `Container`๋ค๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
memset
#include <cstring>
#define MAX_ARR 10000
int arr[MAX_ARR];
int main() {
memset(arr, 0, sizeof(int) * MAX_ARR);
}
- init๋ ์๊ฐ์ด ๋๋ ์์ ์ด๋ค. STL์ Container๊ฐ ์๋๋ผ๋ฉด memset์ ํ์ฉํ๋ฉด ์ข๋ค.
set, map
#include <set>
#include <string>
#include <iostream>
using namespace std;
set<string> words;
int main() {
char curWord[][5] = { "ABAA", "BBCC", "EFEE", "KFFF", "GSAA" };
for (auto& w : curWord)
words.insert(w);
cout << "์ฌ์ ์ ์ ๋ ฌ" << endl;
cout << *words.begin() << endl;
auto iter = words.find("BBCC");
words.erase(iter);
cout << "BBCC ์ญ์ ํ์ธ" << endl;
for (auto& w : words)
cout << w << endl;
}
set, map์์ ์ฌ์ฉํ๋ ๋ฉ์๋๋ค์ ์ ์ฌํ๋ค. ๋ฐ๋ผ์ ์ด๋ค ์์ผ๋ก ์ฌ์ฉํ๋์ง ๊ฐ๋ตํ ์ ๋ฆฌํ๋ฉด ์์ ๊ฐ๋ค. `erase`์ return ๊ฐ์ erase ๋๋ ๊ฐ์ next์ด๋ค.
unordered_map
#include <iostream>
#include <unordered_map>
using namespace std;
unordered_map<string, int> wordCntMap;
int main() {
wordCntMap.clear(); // ์ด๊ธฐํ
wordCntMap["BLUE"] = 100;
if (wordCntMap.count("BLUE")) // key ๊ฐ ํ์ธ
cout << "๊ฐ ์กด์ฌํจ" << endl;
wordCntMap["BLUE"] = 50; // ๊ฐ ๊ฐฑ์
wordCntMap.erase("BLUE"); // ๊ฐ ์ญ์
}
- unordered_map์ ํตํด key, value ๊ฐ์ ์ ์ง, ๊ฐฑ์ ํ ์ ์๋ค.
์ด์ธ์๋ ์ฌ๋ด ์ฌ์ดํธ์ ๋ค์ํ ์ฌ๋๋ค์ ํ์ด๋ฅผ ๋ณด๋ฉด, ๋ค์ํ ๊ฟํ๋ค์ด ํ๋ฌ๋์น๋ค. (`register`, `emplace` ๋ฑ๋ฑ...)
๊ธ์ ๋ง์น๋ฉฐ
์๊ณ ๋ฆฌ์ฆ์ ์ข์ํ์ง ์์๊ณ , ์ ์ฌ๋ฅผ ์ํด ์ฃผ๋จน๊ตฌ๊ตฌ์์ผ๋ก ๊ณต๋ถํ๋ค ๋ณด๋ ํด๋น ์ํ์ ์ค๋นํ๋ฉฐ ์ด๋ ค์์ ๊ฒช์๋ค. ํฉ๊ฒฉํ๊ณ ๋ณด๋ ํ๋ฌดํ๊ธฐ๋ ํ๊ณ , ํด๋น ๊ณผ์ ์์ ๋ง์ด ๋ฐฐ์ฐ๊ณ C++์ ํ์ฉํ๋ ๋ฅ๋ ฅ๋ ์์น๋ ๊ฒ ๊ฐ๋ค. ํ๋ฌ์ 2๋ฒ์ ํ ์์ผ๋ง๋ค ์ํ์ ์น๋ค๋ณด๋ ์ฃผ๋ง์ด ์์ญ๋๊ณ , ์ํ์ด ์๋ ์ฃผ๋ง์ ๊ณต๋ถ๋ฅผ ํ๋ค๋ณด๋ ์จ์ ํ ์ฃผ๋ง์ ๋ชป ์ฆ๊ธด ๊ฒ ์ด๋๋ง ๋ฐ๋ ์ด ์ง๋๋ฒ๋ ธ๋ค. ๋น์ฅ ๋์ ๋ณด์ด๋ Pro ์ํ์ ํด์น์๋ฒ๋ ธ์ผ๋ ์ด์ ๋ ์ค๋ฌด์ ์ง์คํด๋ณด๊ณ ์ ํ๋ค...๐
'๐ Samsung' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Samsung: ์ ์ฌ 2์ฃผ๋ ์ ๋ง์ดํ๋ฉฐ (5) | 2023.10.22 |
---|---|
Samsung: ์ ์ฌ 1์ฃผ๋ ์ ๋ง์ดํ๋ฉฐ (0) | 2022.09.21 |
Samsung: ์๋ฐ๊ธฐ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ฉฐ (0) | 2022.06.30 |
Samsung: ์ ์ ์ฌ์ ์ ์ธ๋์ถ ๋ฐ๊ธฐ (15) | 2021.11.05 |
Samsung: ์ ์ ์ฌ์์ผ๋ก ํ์ ๋ฐฐ์น ๋ฐ๊ธฐ๊น์ง (0) | 2021.10.25 |