๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ—ฃ๏ธ ์‹ ์ž… ์ธํ„ฐ๋ทฐ

(23)
์‹ ์ž… ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ ๋ฉด์ ‘ : C++ 05 (์†์ฝ”๋”ฉ: Heapify, ์ตœ๋Œ€ํž™, ์ด์ง„ํƒ์ƒ‰) ์•ˆ๋…•ํ•˜์„ธ์š”, ์ซ€๋ƒ๋ฏธ์ž…๋‹ˆ๋‹ค. ์†์ฝ”๋”ฉ์€ ์ฒ˜์Œ์ด๋ผ์„œ์š” ... ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค (_ _ ) ๐Ÿ—ฃ๏ธ Heapify ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š” #include using namespace std; void swap(int& a, int& b) { int temp = a; a = b; b = temp; } int num = 9; int heap[9] = {7, 6, 5, 8, 3, 5, 9, 1, 6}; int main() { for (int i = 1; i < num; i++) { int c = i; do { int root = (c - 1) / 2; if (heap[root] < heap[c]) { swap(heap[root], heap[c]); } c = root; } while (c..
์‹ ์ž… ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ ๋ฉด์ ‘ : C# 01 ๐Ÿ—ฃ๏ธ C#์˜ ์ฃผ์š” ํŠน์ง•์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. C, C++๊ณผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”? C#์€ ๊ฐ์ฒด์ง€ํ–ฅ, ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์‹œ์Šคํ…œ, ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ(๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜), ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ๋ณด์•ˆ, ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ(์ฃผ๋กœ .NET ํ™˜๊ฒฝ) ๋“ฑ์„ ํŠน์ง•์œผ๋กœ ํ•˜๋Š” ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. C++์— ๋น„ํ•ด ๋” ์—„๊ฒฉํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์›์น™๊ณผ ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์•ˆ์ „์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, C์™€ ๋‹ฌ๋ฆฌ ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€์‹  ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ๋˜ํ•œ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ(๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜)๋ฅผ ์ œ๊ณตํ•˜์—ฌ, C++๊ณผ C์˜ ์ˆ˜๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ(์˜ˆ: `new`, `delete`, `malloc`, `free`)์™€ ๊ตฌ๋ณ„๋ฉ๋‹ˆ๋‹ค. C#์€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ .NET ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. C์™€ C++์€ ..
์‹ ์ž… ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ ๋ฉด์ ‘ : Java 01 ๐Ÿ—ฃ๏ธ Java์˜ ํŠน์ง•์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. IP๋Š” ๐Ÿ—ฃ๏ธ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์›์น™์€ ๋ฌด์—‡์ด๋ฉฐ, Java์—์„œ ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋‚˜์š”? IP๋Š” ๐Ÿ—ฃ๏ธ Java์˜ '์“ฐ๊ธฐ ํ•œ๋ฒˆ, ์–ด๋””์„œ๋‚˜ ์‹คํ–‰' (Write Once, Run Anywhere) ์›์น™์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. IP๋Š” ๐Ÿ—ฃ๏ธ Java์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”? IP๋Š” ๐Ÿ—ฃ๏ธ Java์˜ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ , ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค์™€ ํด๋ž˜์Šค๋“ค์„ ์–ธ๊ธ‰ํ•ด์ฃผ์„ธ์š”. IP๋Š” ๐Ÿ—ฃ๏ธ Java์—์„œ ์ถ”์ƒ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”? IP๋Š” ๐Ÿ—ฃ๏ธ Java์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection) ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. IP๋Š” ๐Ÿ—ฃ๏ธ Java์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ , Checked Exception๊ณผ Unchecked Ex..
์‹ ์ž… ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ ๋ฉด์ ‘ : C++ 04 (C, C#, Java์™€์˜ ์ฐจ์ด์ ) ๐Ÿ—ฃ๏ธ C++๊ณผ C์—์„œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ง€์›์— ์žˆ์–ด ์–ด๋–ค ์ฃผ์š” ์ฐจ์ด์ ์ด ์žˆ๋‚˜์š”? C++์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์›์น™๋“ค์„ ์ง์ ‘์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ๋ฐ˜๋ฉด, C๋Š” ์ ˆ์ฐจ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ์ฃผ๋กœ ์ˆœ์ฐจ์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. C์—์„œ๋Š” ๊ตฌ์กฐ์ฒด(struct)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. C์—์„œ๋Š” ์ƒ์†์ด๋‚˜ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์˜ ์ถ”์ƒํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ C++์€ ๊ฐ์ฒด ์ค‘์‹ฌ, namespace, ์˜ค๋ฒ„๋ผ์ด๋”ฉ, ์˜ˆ์™ธ์ฒ˜๋ฆฌ, ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ—ฃ๏ธ C++๊ณผ Java์—์„œ ์–ด๋–ค ์ฃผ์š” ์ฐจ์ด์ ์ด ์žˆ๋‚˜์š”? Java ๋Š” ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ณ  ํœด๋Œ€์„ฑ์ด ๋†’์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋ฐ˜๋ฉด, C++์€ ์„ฑ๋Šฅ๊ณผ ์ €์ˆ˜์ค€์˜ ์‹œ์Šคํ…œ ..