๋ชฉ๋ก์ „์ฒด ๊ธ€ (1005)

๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ„ํ•œ ํ•œ๋ฐœ์ง ๋‘๋ฐœ์ง๐Ÿพ] ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ (Linked List)

=> ๋น…์˜ค(Big-O)ํ‘œ๊ธฐ๋ฒ• ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ [10๋ถ„ ์ •๋ฆฌ] ๐Ÿซง ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ (Linked List) : ์—ฐ์†๋œ ๋…ธ๋“œ(Node) ์˜ ์—ฐ๊ฒฐ์ฒด ๐Ÿพ ๋…ธ๋“œ(Node) : ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ : ๋ฐ์ดํ„ฐ & ๋งํฌ, 2๊ฐ€์ง€์˜ ํ•„๋“œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ตฌ์กฐ ๐Ÿพ data : ๋…ธ๋“œ๊ฐ€ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ/๊ฐ’ ๐Ÿพ next : ๋งํฌ/ํฌ์ธํ„ฐ ์—ญํ• , ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ (์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, prev ํฌ์ธํ„ฐ (์ด์ „ ๋…ธ๋“œ์˜ ์ฃผ์†Œ) ์ถ”๊ฐ€) ๐Ÿซง ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ (Linked List) vs ๋ฐฐ์—ด ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ (Linked List) ๋ฐฐ์—ด random access ๋ถˆ๊ฐ€๋Šฅ random access ๊ฐ€๋Šฅ ๋ฆฌ์ŠคํŠธ์˜ n๋ฒˆ์งธ ๋…ธ๋“œ ๋ฐฉ๋ฌธ์‹œ O(n) ์‹œ๊ฐ„ ์†Œ์š” ๋ฐฐ์—ด์˜ n๋ฒˆ์งธ ์›์†Œ ๋ฐฉ๋ฌธ์‹œ O(1) ์‹œ๊ฐ„์œผ๋กœ ๊ฐ€๋Šฅ ๋ฐฐ์—ด๋ณด๋‹ค ๋นจ๋ผ์งˆ ์ˆ˜ ์žˆ๋Š” ๋…ธ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ„ํ•œ ํ•œ๋ฐœ์ง ๋‘๋ฐœ์ง๐Ÿพ] ๋น…์˜ค(Big-O)ํ‘œ๊ธฐ๋ฒ•

=> ๋น…์˜ค(Big-O)ํ‘œ๊ธฐ๋ฒ• ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ [10๋ถ„ ์ •๋ฆฌ] ๐Ÿซง ๋น…์˜ค(Big-O)ํ‘œ๊ธฐ๋ฒ• : ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œ๊ธฐ๋ฒ• : ์‹œ๊ฐ„ / ๊ณต๊ฐ„ ๋ณต์žก๋„ ์˜ˆ์ธก์‹œ ์‚ฌ์šฉ : N ๊ฐ’์˜ ์ฆ๊ฐ€์— ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ๋˜๋Š” ๊ณต๊ฐ„ ๊ณ„์‚ฐ : ์ƒ์ˆ˜์™€ ๊ณ„์ˆ˜ ์ œ๊ฑฐํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„๋ฅผ ๋‹จ์ˆœํ™” : ์ธํ’‹์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ฅธ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ์‹œ๊ฐ„์˜ ์ฆ๊ฐ€์œจ ๐Ÿซง ์ฃผ์š” ์‹œ๊ฐ„๋ณต์žก๋„ O(1) - Constant Time : ์ธํ’‹์˜ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์ผ์ •ํ•œ ์‹œ๊ฐ„ ์†Œ์š” O(log n) - Logarithmic : ๋กœ๊ทธ์‹œ๊ฐ„, O(1) ๋‹ค์Œ์œผ๋กœ ๋น ๋ฅธ ์‹œ๊ฐ„ ๋ณต์žก๋„ O(n) - Linear Time : ์„ ํ˜• ์‹œ๊ฐ„, ์ธํ’‹์˜ ์ฆ๊ฐ€ ์‹œ ๊ฐ™์€ ๋น„์œจ๋กœ ์ฆ๊ฐ€ O(N^2) - Quadratic : 2์ฐจ ์‹œ๊ฐ„, ์ธํ’‹์˜ ์ฆ๊ฐ€ ์‹œ n์˜ ์ œ๊ณฑ ๋น„์œจ๋กœ ์ฆ๊ฐ€ O(n!) - Factoria..

[Embedded ์œ„ํ•œ ํ•œ๋ฐœ์ง ๋‘๋ฐœ์ง๐Ÿพ] ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ(linked list) ๊ตฌํ˜„ํ•˜๊ธฐ

=> [์ž๋ฃŒ๊ตฌ์กฐ / ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์˜ 1ํ™” - ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ(linked list) ๊ตฌํ˜„ (1/2 ) ๐Ÿซง Linked List ๋ฐฐ์—ด๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์„ ํ˜•์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์ž๋ฃŒ๊ตฌ์กฐ ๊ฐ ๋…ธ๋“œ๋Š” ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ ๋…ธ๋“œ์˜ ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค ๊ฐ ๋…ธ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜์™€ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํฌ์ธํ„ฐ๋ณ€์ˆ˜๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค ๋ฐฐ์—ด์˜ ์‚ฌ์ด์ฆˆ๋Š” ๊ณ ์ •๋˜์–ด ์žˆ๊ณ  ๋ฐฐ์—ด์„ ์„ ์–ธํ•  ๋•Œ ๋ฐฐ์—ด์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ํ•ญ์ƒ ์•Œ์•„์•ผ ํ•œ๋‹ค ๋‹จ๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋Š” head๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค head๋…ธ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋น„์–ด์žˆ์–ด๋„ ํ•ญ์ƒ ์กด์žฌํ•œ๋‹ค head๋กœ ์ •ํ•ด์ง„ ๋…ธ๋“œ๋Š” data๋ณ€์ˆ˜์— ์•„๋ฌด๊ฒƒ๋„ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค ๐Ÿซง ์•ž ๋’ค๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ & ์‚ญ์ œํ•˜๊ธฐ ๐Ÿพ main.cpp #include #include "CLinkedList.h" using n..

[Embedded ์œ„ํ•œ ํ•œ๋ฐœ์ง ๋‘๋ฐœ์ง๐Ÿพ] Debug vs Release ์ฐจ์ด์ 

=> [๋”ฐ๋ฐฐ์”จ++] ๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” C++ | ๋ชจ๋˜ c++, c++ ๊ฐ•์˜, c++ ๊ฐ•์ขŒ, c++ ์–ธ์–ด, ๊ธฐ์ดˆ & c++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์ฝ”๋”ฉ ๐Ÿซง Debug vs Release ์ฐจ์ด์  Debug ๋ชจ๋“œ๋Š” ๋””๋ฒ„๊น…์— ์ ํ•ฉํ•œ ๋นŒ๋“œ Release ๋ชจ๋“œ๋Š” ๋ฐฐํฌ๋ฅผ ์ ํ•ฉํ•œ ๋นŒ๋“œ Debug ๋นŒ๋“œ๋Š” ์ฝ”๋“œ ์‹คํ–‰ ์†๋„๊ฐ€ ๋Š๋ฆฌ์ง€๋งŒ, ๋””๋ฒ„๊น…์ด ์šฉ์ดํ•˜๊ณ  ์ปดํŒŒ์ผ ์†๋„๋„ ๋น ๋ฅด๋ฏ€๋กœ ํ•œ์ฐฝ ๊ฐœ๋ฐœ์ด ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋””๋ฒ„๊น…์„ ํ• ๋•Œ ์‚ฌ์šฉ Release ๋นŒ๋“œ๋Š” ์ฝ”๋“œ ์‹คํ–‰ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋ฐฐํฌํ•˜๊ธฐ๋„ ์šฉ์ดํ•˜๋ฏ€๋กœ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๊ณ  ์‹ค์ œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ Debug Release ์ฝ”๋“œ ์ตœ์ ํ™” ํ•˜์ง€ ์•Š์Œ ๋ฐ”์ด๋„ˆ๋ฆฌ(์‹คํ–‰ ํŒŒ์ผ) ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค ์ฝ”๋“œ ์‹คํ–‰ ์†๋„๊ฐ€ ๋Š๋ฆผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋งŽ์Œ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋””๋ฒ„๊น…์— ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋จ ์ปดํŒŒ์ผ ์†๋„ ๋น ๋ฆ„ ..

[Embedded ์œ„ํ•œ ํ•œ๋ฐœ์ง ๋‘๋ฐœ์ง๐Ÿพ] C++ ์‹คํ–‰ํŒŒ์ผ ๊ตฌ์กฐ & Frist! "Hello World"

=> [๋”ฐ๋ฐฐ์”จ++] ๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” C++ | ๋ชจ๋˜ c++, c++ ๊ฐ•์˜, c++ ๊ฐ•์ขŒ, c++ ์–ธ์–ด, ๊ธฐ์ดˆ & c++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์ฝ”๋”ฉ ๐Ÿซง C++ ์‹คํ–‰ํŒŒ์ผ ๊ตฌ์กฐ 1. ์†Œ์Šค ํŒŒ์ผ(source file)์˜ ์ž‘์„ฑ : ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์›์‹œ ํŒŒ์ผ ๋˜๋Š” ์†Œ์Šค ํŒŒ์ผ (c++) 2. ์„ ํ–‰์ฒ˜๋ฆฌ๊ธฐ(preprocessor)์— ์˜ํ•œ ์„ ํ–‰์ฒ˜๋ฆฌ : ์„ ํ–‰์ฒ˜๋ฆฌ ๋ฌธ์ž(#)๋กœ ์‹œ์ž‘ํ•˜๋Š” ์„ ํ–‰์ฒ˜๋ฆฌ ์ง€์‹œ๋ฌธ์˜ ์ฒ˜๋ฆฌ ์ž‘์—… : ์ปดํŒŒ์ผํ•˜๊ธฐ ์ „ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž‘์—…ํ•˜๊ธฐ ์ข‹๋„๋ก ์†Œ์Šค๋ฅผ ์žฌ๊ตฌ์„ฑ 3. ์ปดํŒŒ์ผ๋Ÿฌ(compiler)์— ์˜ํ•œ ์ปดํŒŒ์ผ : ์†Œ์Šค ํŒŒ์ผ์„ ์ปดํ“จํ„ฐ๊ฐ€ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ : ์ปดํŒŒ์ผ์ด ๋๋‚˜ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜๋œ ํŒŒ์ผ์„ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ(object file) 4. ๋ง์ปค(linker)์— ์˜ํ•œ ๋งํฌ : ํ•˜๋‚˜ ์ด์ƒ์˜ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ..