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

๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜26

[ํ•ด์‹œ ํ…Œ์ด๋ธ”] ํ•ด์‹œ ํ…Œ์ด๋ธ”, ํ•ด์‹œ ํ•จ์ˆ˜ ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์ž๋ฃŒ๋ฅผ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œํ•˜๋Š” ๋ฐ ํ‰๊ท ์‹œ๊ฐ„์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์—ฌ ๊ทน๋‹จ์  ํšจ์œจ์— ๋‹ค๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ ํ‚ค ์ž์‹ ์˜ ๊ฐ’์— ๋”ฐ๋ผ ์ž๋ฆฌ๊ฐ€ ๊ฒฐ์ •๋จ ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ํ‚ค๊ฐ€ ์ €์žฅ๋  ์ž๋ฆฌ๋ฅผ ํ‚ค์˜ '๊ฐ’'์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ์ž„์˜์˜ ํ‚ท๊ฐ’์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ์ฃผ์†Œ ์ค‘ ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•จ(๋ฆฌํ„ด๊ฐ’=ํ•ด๋‹น ํ‚ค๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฆฌ) ํ•ด์‹œ ํ•จ์ˆ˜ ๋‚˜๋ˆ„๊ธฐ์˜ ๋ฐฉ๋ฒ• ๊ณฑํ•˜๊ธฐ ๋ฐฉ๋ฒ• ์ถฉ๋Œ ์–ด๋–ค ํ‚ค๊ฐ€ ์ด๋ฏธ ์ž๋ฆฌ ์žก๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ํ‚ค๊ฐ€ ์‚ฝ์ž…์„ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ ๋™์ผํ•œ ์ฃผ์†Œ์— 2๊ฐœ ์ด์ƒ์˜ ํ‚ค๊ฐ€ ํ•ด์‹ฑ๋˜๋Š” ์ƒํ™ฉ ์ถฉ๋Œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ฒด์ด๋‹ : ์ถฉ๋Œ์„ ์ผ์œผํ‚จ ํ‚ค๋“ค์„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ฐœ๋ฐฉ ์ฃผ์†Œ ๋ฐฉ๋ฒ• : ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋”๋ผ๋„ ์–ด๋–ป๊ฒŒ๋“  ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ” ๊ณต๊ฐ„์—์„œ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฒ€์ƒ‰ ์‹œ๊ฐ„ ์ฒด์ด๋‹, ๊ฐœ๋ฐฉ ์ฃผ์†Œ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ๋•Œ์˜ ๊ธฐ๋Œ€์‹œ๊ฐ„ ์ ์žฌ์œจ ํ•ด์‹œ ํ…Œ์ด๋ธ”์— ์›.. 2023. 11. 30.
[๋ฉ”์„œ๋“œ] Queue ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ(LinkedList, PriorityQueue) Queue ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค LinkedList ๋Š” ์ผ๋ฐ˜์ ์ธ ํ ์—ฐ์‚ฐ ์™ธ์— ๋ฆฌ์ŠคํŠธ ๊ธฐ๋Šฅ๊ณผ ์–‘๋ฐฉํ–ฅ ํ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ˜๋ฉด PriorityQueue ๋Š” ์š”์†Œ๋“ค์ด ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ •๋ ฌ๋˜๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง 2023.11.21 - [๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] - [ํž™] ์šฐ์„ ์ˆœ์œ„ ํ : ํž™ LinkedList LinkedList๋Š” Queue ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉฐ, ์ถ”๊ฐ€๋กœ Deque ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•จ [ ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Queue ์ธํ„ฐํŽ˜์ด์Šค ์™ธ์— ์ถ”๊ฐ€๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ ] void addFirst(E e): ๋ฆฌ์ŠคํŠธ์˜ ์•ž์ชฝ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ void addLast(E e): ๋ฆฌ์ŠคํŠธ์˜ ๋’ค์ชฝ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ boolean offerFirst(E e): ๋ฆฌ.. 2023. 11. 30.
[๋ฉ”์„œ๋“œ] Queue ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ 2023.11.21 - [๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] - [ํ] ๋ฐฐ์—ด ๊ธฐ๋ฐ˜ ํ์™€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๊ธฐ๋ฐ˜ ํ boolean add(E e): ์„ค๋ช…: ์ง€์ •๋œ ์š”์†Œ๋ฅผ ํ์˜ ๋์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ๊ฐ€ ๋” ์ด์ƒ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๋ผ๋ฉด (์˜ˆ: ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์žˆ๋Š” ํ์˜ ๊ฒฝ์šฐ), ์ด ๋ฉ”์„œ๋“œ๋Š” IllegalStateException์„ ๋˜์ง‘๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’: ์š”์†Œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. boolean offer(E e): ์„ค๋ช…: ์ง€์ •๋œ ์š”์†Œ๋ฅผ ํ์˜ ๋์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. add ๋ฉ”์„œ๋“œ์™€ ๋‹ฌ๋ฆฌ, ํ๊ฐ€ ์ถ”๊ฐ€๋ฅผ ์ˆ˜์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์— false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์˜ˆ์™ธ๋ฅผ ๋˜์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’: ์š”์†Œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๋ฉด true, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. E remove(): ์„ค๋ช…: ํ์˜ ๋งจ.. 2023. 11. 30.
[๋ฉ”์„œ๋“œ] ArrayDeque ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ArrayDeque ํด๋ž˜์Šค ArrayDeque ๋Š” ๋ฐฐ์—ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋”๋ธ” ์—”๋“œ ํ(double-ended queue)๋ฅผ ๊ตฌํ˜„ํ•œ Java ํด๋ž˜์Šค ArrayDeque ๋Š” Queue ์ธํ„ฐํŽ˜์ด์Šค์™€ Deque ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉฐ, ์Šคํƒ๊ณผ ํ์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ œ๊ณตํ•จ ์ƒ์„ฑ์ž ArrayDeque(): ๋นˆ ArrayDeque๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ArrayDeque(int numElements): ์ง€์ •๋œ ์ดˆ๊ธฐ ์šฉ๋Ÿ‰์„ ๊ฐ€์ง„ ArrayDeque๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ArrayDeque(Collection c): ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋ชจ๋‘ ํ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. boolean retainAll(Collection c): ์ง€์ •๋œ ์ปฌ๋ ‰์…˜์— ์—†๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. boolean contains(Object o): ํ๊ฐ€ ์ง€์ •.. 2023. 11. 30.
[๋ฉ”์„œ๋“œ] Stack ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ 2023.11.21 - [๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] - [์Šคํƒ] ๋ฐฐ์—ด ๊ธฐ๋ฐ˜ ์Šคํƒ๊ณผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ธฐ๋ฐ˜ ์Šคํƒ ์ƒ์„ฑ์ž Stack(): ์„ค๋ช…: ์ƒˆ๋กœ์šด ๋นˆ ์Šคํƒ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. E push(E item): ์„ค๋ช…: ์ง€์ •๋œ ํ•ญ๋ชฉ์„ ์Šคํƒ์˜ ๋งจ ์œ„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” Vector ํด๋ž˜์Šค์˜ addElement ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’: ์Šคํƒ์— ์ถ”๊ฐ€๋œ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค. E pop(): ์„ค๋ช…: ์Šคํƒ์˜ ๋งจ ์œ„์— ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ์ด ๋น„์–ด ์žˆ์œผ๋ฉด EmptyStackException์„ ๋˜์ง‘๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’: ์ œ๊ฑฐ๋œ ๋งจ ์œ„์˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค. E peek(): ์„ค๋ช…: ์Šคํƒ์˜ ๋งจ ์œ„์— ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ์ด ๋น„์–ด ์žˆ์œผ๋ฉด EmptyStackException์„ ๋˜์ง‘๋‹ˆ๋‹ค. ๋ฐ˜.. 2023. 11. 30.
[๋ฉ”์„œ๋“œ] Map ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ ๋ชจ์Œ 2023.11.14 - [๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java] - [ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ Map int size(): ๋งต์— ์ €์žฅ๋œ ํ‚ค-๊ฐ’ ์Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. boolean isEmpty(): ๋งต์ด ๋น„์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋งต์ด ๋น„์–ด์žˆ์œผ๋ฉด true, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. boolean containsKey(Object key): ๋งต์— ํŠน์ • ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋ฉด true, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. boolean containsValue(Object value): ๋งต์— ํŠน์ • ๊ฐ’์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด true, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. V get(Object key): ์ง€์ •๋œ ํ‚ค์— ์—ฐ๊ฒฐ๋œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. .. 2023. 11. 30.
[ํŠธ๋ฆฌ] ๊ท ํ˜• ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ (AVLํŠธ๋ฆฌ, ๋ ˆ๋“œ-๋ธ”๋ž™ํŠธ๋ฆฌ, B-ํŠธ๋ฆฌ) ๊ท ํ˜• ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ ์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ท ํ˜•์ด ์ž˜ ๋งž๋„๋ก ์œ ์ง€ํ•ด์„œ ์ž‘์—…๋“ค์ด ํ•ญ์ƒ O(logn)์‹œ๊ฐ„์„ ๋ณด์žฅํ•จ AVL ํŠธ๋ฆฌ ์ž๊ฐ€ ๊ท ํ˜•, ๋†’์ด ๊ท ํ˜• ์–ด๋–ค ๋…ธ๋“œ๋„ ์ขŒ์„œ๋ธŒ ํŠธ๋ฆฌ์™€ ์šฐ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋†’์ด ์ฐจ๊ฐ€ 1๋ณด๋‹ค ํฌ์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ ํšŒ์ „ ์—ฐ์‚ฐ ๊ท ํ˜•์ด ๊นจ์ง„ ์„œ๋ธŒ ํŠธ๋ฆฌ ์ค‘ ๊ฐ€์žฅ ๋‚ฎ์€ ๊ณณ์— ์žˆ๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์ˆ˜์„ ์„ ์‹œ์ž‘ํ•จ ๋‹จ์ผํšŒ์ „, ์ด์ค‘ํšŒ์ „ AVLํŠธ๋ฆฌ ์šด์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•  ๋•Œ, AVL ํŠธ๋ฆฌ๋Š” ๋ถˆ๊ท ํ˜•๋„๋ฅผ ์ฒดํฌํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ํšŒ์ „์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ท ํ˜•์„ ์žฌ์กฐ์ • ๋ถˆ๊ท ํ˜•๋„ ์ฒดํฌ ๊ฐ ๋…ธ๋“œ๋Š” ์ž์‹ ์˜ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์ž์‹ ํŠธ๋ฆฌ์˜ ๋†’์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถˆ๊ท ํ˜•๋„๋ฅผ ๊ณ„์‚ฐ. ๋ถˆ๊ท ํ˜•๋„๊ฐ€ 1์„ ์ดˆ๊ณผํ•˜๋ฉด ๊ท ํ˜•์ด ๊นจ์ง„ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ ํšŒ์ „ ์œ ํ˜• ๊ท ํ˜•์ด ๊นจ์ง„ ๊ฒฝ์šฐ, LL, RR, LR, RL ๋„ค ๊ฐ€.. 2023. 11. 27.