728x90

๐Ÿ“ Coding Test Study/C++ 25

[C++][hash_map] map๊ณผ unordered_map์˜ ์ฐจ์ด?

=> map๊ณผ unordered_map์˜ ์ฐจ์ด๋Š” ๊ตฌํ˜„๋ฐฉ์‹์ด๋‹ค. map์€ ๊ท ํ˜• ์ด์ง„ํŠธ๋ฆฌ(Red-black tree)๋กœ ๊ตฌํ˜„๋˜๊ณ , unordered_map(hash_map)์€ hash ๋ฐฉ์‹(hash table)์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค. ์ฆ‰, map์— ๋“ค์–ด๊ฐ€๋Š” element ๋“ค์€ key์— ๋”ฐ๋ผ ์ •๋ ฌ๋˜์–ด ์ €์žฅ๋˜๊ณ , unordered_map์€ key์˜ hash๊ฐ’์— ๋”ฐ๋ผ์„œ ์ €์žฅ๋œ๋‹ค. => ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์€ ๊ฒฝ์šฐ๋Š” map > unordered_map, ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ๋Š” map < unordered_map ์„ฑ๋Šฅ์ด ๋” ์ข‹๋‹ค. map์˜ ๋ฐ์ดํ„ฐ๋“ค์€ ์ •๋ ฌ๋˜์–ด ์ €์žฅ๋˜๋ฏ€๋กœ O(logN)์˜ ํƒ์ƒ‰ ์†๋„๋ฅผ ๋ณด์žฅํ•˜๊ณ , key๊ฐ’์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” unordered_map์˜ ๊ฒฝ์šฐ O(1)์˜ ํƒ์ƒ‰์†๋„๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฐธ๊ณ ๋กœ map์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ์‚ญ..

C++ ๋ฐฐ์—ด/๋ฒกํ„ฐ์„ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๊ณ  ๋ฐ›๊ธฐ

vector์™€ array์˜ ์ฃผ์†Œ๊ฐ’์„ ์ „๋‹ฌํ•ด์„œ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• - vector๋ฅผ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๊ธฐ #include #include #include using namespace std; void tossVector(vector&); int main() { int N = 0, num = 0; vector v; //Input cin >> N; for (int i = 0; i > num; v.push_back(num); } tossVector(v); //Output for (int i = 0; i > arr[i]; } tossArr..

C++ sort ํ•จ์ˆ˜ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ(๋ฐฐ์—ด, ๋ฒกํ„ฐ)

* C++ sortํ•จ์ˆ˜๋ž€? : C++STL์—์„œ ์ œ๊ณตํ•˜๋Š” sort ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํ—ค๋”ํŒŒ์ผ: - ๊ตฌ๋ฌธ: sort(start, end); //start๋ถ€ํ„ฐ end๊ฐœ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ(default)๋กœ ์ •๋ ฌํ•œ๋‹ค. - ๋‚ด๋ถ€๋Š” Quick sort(ํ€ต ์ •๋ ฌ)๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ‰๊ท  ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(NlogN)์„ ๊ฐ€์ง„๋‹ค. 1) ํ•จ์ˆ˜ ์›ํ˜• template void sort(T start, T end); template void sort(T start, T end, Compare comp); : 3๋ฒˆ์งธ ์ธ์ž ๊ฐ’(Compare comp)์„ ๋„ฃ์œผ๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ ๋“ฑ์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค. compare ํ•จ์ˆ˜๋Š” true ์ธ ๊ฒฝ์šฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. 2) ๋ฐฐ์—ด(array) ์‚ฌ์šฉํ•  ๋•Œ ์˜ˆ์‹œ sort(arr, arr+n); /..

C++ ๋™์ ํ• ๋‹น?

* ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ณ ์ •ํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ ๋™์ ํ• ๋‹นํ•œ๋‹ค๋Š” ๊ฒƒ์˜ ์ฐจ์ด์ ์€? - ๊ณ ์ •๋ฐฐ์—ด(fixed array): ์ปดํŒŒ์ผ ํƒ€์ž„์— ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ. - ๋™์ ๋ฐฐ์—ด(dynamically array): ๋Ÿฐํƒ€์ž„ ๋™์•ˆ์— ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ. * ๋™์ ํ• ๋‹น์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์—ฐ์‚ฐ์ž: new[], delete[] * ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•˜๊ณ  ๊ฐ’์„ ์ดˆ๊ธฐํ™”์‹œ์ผœ๋ณด์ž. #include int main(){ int length; cin >> length; int *array = new int[length]; //์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ž…๋ ฅ๋ฐ›์€ length๋กœ ํ• ๋‹น ๊ฐ€๋Šฅ for(int i = 0; i> array[i]; } delete[] array;// ๋™์ ํ• ๋‹น ์‹œ, ๋ฐฐ์—ด ํ• ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ผญ ํ•ด์ œํ•ด์ฃผ๊ธฐ. return 0; ..

C++ Template์ด๋ž€? ์ ์šฉ ๋ฐฉ๋ฒ•์€?

โ–ท C++ Template์ด๋ž€? : int, double, long ๋“ฑ์˜ ์ž๋ฃŒํ˜•์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ๊ณตํ†ต๋œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ •์˜ํ•ด๋‘๋Š” ๊ฒƒ โ–ท C++ Document์—์„œ์˜ ์ •์˜ #include template const T& min (const T& a, const T& b) โ–ท ์‚ฌ์šฉ๋ฒ• #include #include using namespace std; template T sum(T a, T b){ return a + b; } int main(){ cout

728x90