๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ž๋ฃŒ๊ตฌ์กฐ (4)

๋‚˜์˜ ๋ชจ์–‘

024 | Data Structure - Tree, Graph

๐Ÿ’™ Tree ๐Ÿค ๊ฐœ๋… ๊ณ„์ธต์  ์ž๋ฃŒ๊ตฌ์กฐ ๋Œ€์ƒ ์ •๋ณด์˜ ๊ฐ ํ•ญ๋ชฉ๋“ค์„ ๊ณ„์ธต์ ์œผ๋กœ ์—ฐ๊ด€๋˜๋„๋ก ๊ตฌ์กฐํ™”์‹œํ‚ค๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ ๋‹จ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ๊นŠ์ด (depth) ๋ฃจํŠธ๋กœ๋ถ€ํ„ฐ ํ•˜์œ„ ๊ณ„์ธต์˜ ํŠน์ • ๋…ธ๋“œ๊นŒ์ง€์˜ ๊นŠ์ด(depth)๋ฅผ ํ‘œํ˜„ ๋ ˆ๋ฒจ(Level) ๊ฐ™์€ ๊นŠ์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…ธ๋“œ์˜ ๋ฌถ์Œ ํ˜•์ œ ๋…ธ๋“œ(Sibling Node): ๊ฐ™์€ ๋ ˆ๋ฒจ์— ๋‚˜๋ž€ํžˆ ์žˆ๋Š” ๋…ธ๋“œ ๋†’์ด(Height) ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฃจํŠธ๊นŒ์ง€์˜ ๋†’์ด(height)๋ฅผ ํ‘œํ˜„ ๋ฆฌํ”„ ๋…ธ๋“œ์™€ ์ง๊ฐ„์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์˜ ๋†’์ด๋ฅผ ํ‘œํ˜„ ๋ถ€๋ชจ ๋…ธ๋“œ๋Š” ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐ€์žฅ ๋†’์€ height ๊ฐ’์— +1ํ•œ ๊ฐ’์„ ๋†’์ด๋กœ ๊ฐ€์ง ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ๋†’์ด๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ์—๋Š” ๊ฐ ๋ฆฌํ”„ ๋…ธ๋“œ์˜ ๋†’์ด๋ฅผ 0์œผ๋กœ ๋†“์Œ ์„œ๋ธŒ ํŠธ๋ฆฌ(Sub tree) ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ root์—์„œ ๋ป—์–ด ๋‚˜์˜ค๋Š” ํฐ ํŠธ๋ฆฌ์˜ ๋‚ด๋ถ€..

SEB/TIL 2022. 7. 26. 20:49
023 | Data Structure - Stack & Queue

๐Ÿ’™ Data Structure ๐Ÿค ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋ž€? ๋ฐ์ดํ„ฐ: ๋ฌธ์ž, ์ˆซ์ž, ์†Œ๋ฆฌ, ๊ทธ๋ฆผ, ์˜์ƒ ๋“ฑ ์‹ค์ƒํ™œ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฐ’ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜๋ฏธ์žˆ์–ด์ง€๋ ค๋ฉด: ๋ถ„์„ → ์ •๋ฆฌ → ํ™œ์šฉ ๋ฐ์ดํ„ฐ์˜ ์‚ฌ์šฉ: ํ•„์š” ๋ชฉ์ ์— ๋”ฐ๋ผ ํ˜•ํƒœ ๊ตฌ๋ถ„ → ๋ถ„๋ฅ˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ž€? ์ž๋ฃŒ์˜ ํšจ์œจ์ ์ธ ์ €์žฅ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ž๋ฃŒ์˜ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๊ตฌ์กฐํ™”ํ•œ ๊ฒƒ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜์™€ ๊ตฌ๋ถ„ ๐Ÿ’™ Stack ๐Ÿค Stack ์ •์˜ & ๊ตฌ์กฐ Stack: ์Œ“๋‹ค, ์Œ“์ด๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์Œ“๋Š” ์ž๋ฃŒ๊ตฌ์กฐ stack์— ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ: push() ๊บผ๋‚ด๊ธฐ: pop() ๐Ÿค Stack ํŠน์ง• LIFO(Last-In First-Out) - ํ›„์ž…์„ ์ถœ๊ตฌ์กฐ ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๋Š” ์ œ์ผ ๋‚˜์ค‘์— ๋‚˜์˜ด ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด๊ฐ„ ํ”„๋ง๊ธ€์Šค๋Š” ์œ„์—๊บผ๊ฐ€ ๋‹ค ๋จนํžˆ๊ธฐ ์ „๊นŒ์ง€ ๋‚˜์˜ฌ ์ˆ˜ ์—†์Œ public cl..

SEB/TIL 2022. 7. 25. 23:16
017 | Java - ๐Ÿฅ Practical | Collection Framework

๐Ÿ’™ Practical - Collection Framework w.Pair ๐Ÿค TIL ๋”๋ณด๊ธฐ ๋ฉ”์„œ๋“œ์˜ ์ค‘์š”์„ฑ ๋ฉ”์„œ๋“œ์˜ ๋ชฉ์  Collection - Map์—์„œ put์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ˜ํ™˜๊ฐ’์ด ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ์—†์–ด๋„ ๋จ. ๋ฐ˜ํ™˜์„ ํ•ด๋„๋˜๊ณ  ์•ˆํ•ด๋„ ๋จ get์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜ํ™˜๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ. ๊ทธ๋ž˜์„œ ๋ฌด์กฐ๊ฑด ๋ฐ˜ํ™˜๊ฐ’์ด ์žˆ์–ด์•ผ๋จ ๋ชฉ์ ๊ณผ ํ•˜๋Š” ์ผ์ด ๊ฐ’์„ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜ํ™˜๊ฐ’์„ ์ €์žฅํ•ด์•ผ๋จ ๋งŒ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ๊ทธ๋ƒฅ ๋ฐ”๋‹ฅ์—, ๊ณต์ค‘์— ๋‘”๋‹ผใ…‹ ⇒ ํ•ด๊ฒฐํ•ด์ฃผ๊ธฐ ArrayList, LinkedList, HashMap ๋ฉ”์„œ๋“œ ํ™œ์šฉ Generics๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒ์„ฑ์„ ํ•˜๊ณ  ๊ทธ ์ƒ์„ฑํ•œ ๊ฐ’์— ๋ฉ”์„œ๋“œ๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ์ ์šฉํ•˜๋ฉด ๋˜๋Š”์ง€ ์•Œ๊ฒŒ๋จ ์„ฑ๋Šฅ ์ฐจ์ด? ๋ฌด์กฐ๊ฑด ์ด๊ฒŒ ๋น ๋ฅด๋‹ค, ์„ฑ๋Šฅ์ด ์ข‹๋‹ค ๋‚˜์˜๋‹ค..

SEB/TIL 2022. 7. 16. 02:51
016 | Java - Generics, Collection Framework

๐Ÿ’™ ์˜ค๋Š˜์˜ ๊ณต๋ถ€ - 1. ์ œ๋„ค๋ฆญ ๐Ÿค Generics ๋”๋ณด๊ธฐ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค์˜ ํƒ€์ž…์ด ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋˜๋„๋ก ํ•  ๋•Œ ์‚ฌ์šฉ ํด๋ž˜์Šค๋‚˜ ๋ฉ”์„œ๋“œ์˜ ํŠน์ • ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ถ”ํ›„์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ ์ œ๋„ค๋ฆญ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜ํ™”๋œ ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค Type Parameter Naming Conventions ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„ ⇒ ์ž„์˜์˜ ๋ฌธ์ž๋กœ ์ง€์ • ๊ฐ€๋Šฅ ํ•œ ๊ธ€์ž์˜ ๋Œ€๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ, ๋ณ€์ˆ˜์™€ ์ผ๋ฐ˜ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ๊ณผ ์ด๋ฆ„์„ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•จ Type Parameter Full name Meaning E Element ์š”์†Œ K Key ํ‚ค N Number ๋ฒˆํ˜ธ T Type ์œ ํ˜• V Value ๊ฐ’ ์ œ๋„ค๋ฆญ ์žฅ์  ์ปดํŒŒ์ผ ์‹œ ํƒ€์ž… ์ฒดํฌ ⇒ ํƒ€์ž… ์•ˆ์ •์„ฑ ํ–ฅ์ƒ ํƒ€์ž…์ฒดํฌ์™€ ํ˜•๋ณ€..

SEB/TIL 2022. 7. 15. 00:38