๋ชฉ๋ก๐Ÿ‘ฉ‍๐Ÿ’ป ์ปดํ“จํ„ฐ ๊ตฌ์กฐ/Algorithm (16)

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

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ„ํ•œ ํ•œ๋ฐœ์ง ๋‘๋ฐœ์ง๐Ÿพ] ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ (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..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์„ ํ˜•๊ฒ€์ƒ‰, ์ด์ง„๊ฒ€์ƒ‰, ํŠธ๋ฆฌ๊ตฌ์กฐ(BFS, DFS)

220930 ์ž‘์„ฑ 1๏ธโƒฃ์„ ํ˜•๊ฒ€์ƒ‰ : ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜๊ณ  ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ์˜ ๋งจ ์•ž๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์กฐ์‚ฌํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฐพ๊ธฐ : ๊ฐ’์„ ์ฐพ์„ ๋–„๊นŒ์ง€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์ฒ˜๋ฆฌ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค ๋ฐ์ดํ„ฐ ์ˆ˜ n์ด๋ผ ํ•˜๋ฉด ๋น„๊ตํšŸ์ˆ˜์˜ ํ‰๊ท ์€ (n+1) / 2 O(n) # ์„ ํ˜•๊ฒ€์ƒ‰ # ์›ํ•˜๋Š” ๊ฐ’ ์ฐพ๊ธฐ num_list = [23, 12, 55, 32, 45, 76, 88, 52] def linear (n) : for i in num_list : if i == n : return True return False print(linear(5)) # result # False 2๏ธโƒฃ ์ด์ง„๊ฒ€์ƒ‰ : ๋ฐ์ดํ„ฐ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋„ ๋น ๋ฅธ ์†๋„๋กœ ๊ฒ€์ƒ‰์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ : ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ์•ž์ด๋‚˜ ๋’ค์˜ ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ณต์žก๋„,๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• O, ์ž๋ฃŒ๊ตฌ์กฐ(๋ฆฌ์ŠคํŠธ, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ)

220928 ์ž‘์„ฑ 1๏ธโƒฃ ๋ณต์žก๋„ : ๋ง ๊ทธ๋ž˜๋กœ ๊ณ„์‚ฐ์˜ ๋ณต์žก๋„ ์‹œ๊ฐ„ ๋ณต์žก๋„ : ์ฒ˜๋ฆฌ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š”์ง€ ๊ณต๊ฐ„ ๋ณต์žก๋„ : ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์˜ ๊ธฐ์–ต ์šฉ๋Ÿ‰์„ ์–ผ๋งˆ๋‚˜ ํ•„์š”๋กœ ํ•˜๋Š”์ง€ 2๏ธโƒฃ ๋ณต์žก๋„ ์ž‘์„ฑ๋ฒ• : ์ „์ฒด ๋ณต์žก๋„์— ํฐ ์˜ํ–ฅ์„ ๊ธฐ์น˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์„ ๋ฌด์‹œํ•˜๊ณ  ๋ณต์žก๋„๋ฅผ ์ž‘์„ฑ ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• O ์ž…๋ ฅ ํฌ๊ธฐ n์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋‹ฌ๋ผ์ง ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์˜ˆ ์งง๋‹ค ↑ . . . . . ↓ ๊ธธ๋‹ค O(1) ๋ฆฌ์ŠคํŠธ ์ ‘๊ทผ O(logn) ์ด์ง„ ๊ฒ€์ƒ‰ O(n) ์„ ํ˜• ๊ฒ€์ƒ‰ O(nlogn) ๋ณ‘ํ•ฉ ์ •๋ ฌ O(n^2) ์„ ํƒ ์ •๋ ฌ, ์‚ฝ์ž… ์ •๋ ฌ O(n^3) ํ–‰๋ ฌ ๋ฌธ์ œ O(2^n) ๋ฐฐ๋‚ญ ๋ฌธ์ œ O(n!) ์™ธํŒ์› ๋ฌธ์ œ 3๏ธโƒฃ ์ตœ์•… ์‹œ๊ฐ„ ๋ณต์žก๋„ & ํ‰๊ท  ์‹œ๊ฐ„ ๋ณต์žก๋„ ๐Ÿค ์ตœ์•… ์‹œ๊ฐ„ ๋ณต์žก๋„ : ๊ฐ€์žฅ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ณต์žก๋„ ๐Ÿค ..

[python] class์™€ def __init__(self) ์ดํ•ดํ•˜๊ธฐ

220907 ์ž‘์„ฑ https://engineer-mole.tistory.com/190 [python] python์˜ self์™€ __init__์˜ ์ดํ•ด โ€ป ์ผ๋ณธ์˜ ํ•œ ํฌ์ŠคํŒ…์„ ๋ฒˆ์—ญํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์˜ค์—ญ ๋ฐ ์ง์—ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚ด์šฉ ์˜ค๋ฅ˜๋Š” ๋Œ“๊ธ€๋กœ ์ง€์ ํ•ด์ฃผ์‹ฌ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Python์˜ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ดํ•ด ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋™์ผํ•˜๊ฒŒ python์—์„œ๋„ ํด๋ž˜์Šค engineer-mole.tistory.com ๐Ÿ˜Ž ํด๋ž˜์Šค (class) ๊ฐ์ฒด์˜ ๊ตฌ์กฐ์™€ ํ–‰๋™ ๊ฐ์ฒด(object)๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ๋ฒ• ์–ด๋–ค ์‚ฌ๋ฌผ์ด๋‚˜ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ถ”์ƒํ™”๋ฅผ ๊ฑฐ์ณ ๋งŒ๋“  ํ‹€ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ ๋“ฑ์„ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ๊ธฐ๋Šฅ์„ ๋ฉค๋ฒ„ ํ•จ์ˆ˜(๋ฉ”์†Œ๋“œ)๋กœ ๊ตฌํ˜„ class ํด๋ž˜์Šค๋ช…: ๋ฉค๋ฒ„๋ณ€์ˆ˜ = ๊ฐ’ # ํด๋ž˜์Šค ๋ณ€์ˆ˜ ... d..