"๊ธ€์Ž„, ๋‹น์‹ ์˜ ํ”„๋กœ์„ธ์„œ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?"

"๊ดœ์ฐฎ์•„์š”. ํ•œ ์‹œ๊ฐ„ ๋™์•ˆ ์•ก์ฒด ์งˆ์†Œ์— ์•‰์•„ ์žˆ์—ˆ์œผ๋‹ˆ ์ด์ œ ์ƒˆ๊ฒƒ์ด๋‚˜ ๋‹ค๋ฆ„์—†์–ด์š”!"

"์ข‹์•„. ๊ทธ๋Ÿผ ๊ณ„์†ํ•˜์ž."

"์ปฌ๋ ‰์…˜ ์„ค์ •."

์ˆ˜ํ•™์ ์œผ๋กœ ๋งํ•˜๋ฉด ์ง‘ํ•ฉ์€ ๊ณ ์œ ํ•œ ์š”์†Œ์˜ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์„ธํŠธ๋Š” ๊ณ ์œ ํ•œ ์š”์†Œ์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋™์ผํ•œ ์š”์†Œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.

"Ellie๊ฐ€ Set์˜ ์ƒ์† ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์คฌ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค."

Set ๋ฐ Queue ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„ - 1

" HashSet์€ hashCode () ๋ฉ”์„œ๋“œ ์—์„œ ๋ฐ˜ํ™˜๋œ ํ•ด์‹œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€์ ์œผ๋กœ ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜์ž…๋‹ˆ๋‹ค ."

"๋‹จ์ˆœํ™”๋ฅผ ์œ„ํ•ด HashSet<E>๋Š” HashSet์˜ ๊ฐ’์„ ํ‚ค๋กœ ์ €์žฅํ•˜๋Š” HashMap<E, Object> ๊ฐœ์ฒด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค."

"์›Œ!"

"ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Set์—์„œ ์š”์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰, ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."

"ํ•˜์ง€๋งŒ ํด๋ž˜์Šค์˜ ๊ฐœ์ฒด๋ฅผ Set์— ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฑฐ๊ธฐ์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฐพ์œผ๋ ค๋ฉด ํด๋ž˜์Šค๊ฐ€ hashCode & equals ๋ฉ”์„œ๋“œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค ."

"๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ HashSet/HashMap ๋‚ด๋ถ€์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค . "

" hashCode () ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฌ๋ฉด Set์—์„œ ๊ฐœ์ฒด๊ฐ€ ์žˆ๋”๋ผ๋„ ๊ฐœ์ฒด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค."

"๋„ค, ๊ธฐ์–ตํ•ด์š”, ๊ธฐ์–ตํ•ด์š”. ๋‹น์‹ ์ด ์ „์— ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋งํ–ˆ์ž–์•„์š”. ๋‚œ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋‹ค ๋“ค์—ˆ์–ด์š”."

"์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ข€ ๋” ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค."

" ํด๋ž˜์Šค์—์„œ hashCode์™€ equals๋ฅผ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌํ˜„ํ–ˆ๊ณ  Set์— ๊ฐœ์ฒด๋ฅผ ํ–‰๋ณตํ•˜๊ฒŒ ์ €์žฅํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค ."

"ํ•˜์ง€๋งŒ ๊ฐ์ฒด ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ํ•ด์‹œ ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค . ๋”ฐ๋ผ์„œ ๊ฐ์ฒด์˜ ํ•ด์‹œ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค."

"๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๋‹น์‹ ์ด ์„ธํŠธ์—์„œ ๊ทธ๊ฒƒ์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์•„๋งˆ ๊ทธ๊ฒƒ์„ ์ฐพ์ง€ ๋ชปํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค."

"์™€์šฐ! ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?"

"์ด๊ฒƒ์€ ํ•ด์‹œ๋กœ ์ž‘์—…ํ•  ๋•Œ ์ž˜ ์•Œ๋ ค์ง„ ํ•จ์ •์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ HashSet(๋ฐ HashMap) ๊ฒ€์ƒ‰์€ ๊ฐœ์ฒด๊ฐ€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค . "

"์™€์šฐ! ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๋„ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?"

"๋‹ค๋“ค ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ์ฒ™ํ•ด์š”. ๊ทธ๋Ÿฐ๋ฐ ์ด๊ฑด ์ธํ„ฐ๋ทฐ์—์„œ ์ž์ฃผ ๋‚˜์˜ค๋‹ˆ๊นŒ ๊ธฐ์–ตํ•ด๋‘๋Š” ๊ฒŒ ์ข‹์„์ง€๋„..."

"A LinkedHashSet ์€ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ์—ฐ๊ฒฐ๋œ ๋ชฉ๋ก์—๋„ ์ €์žฅ๋˜๋Š” HashSet์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ HashSet๋Š” ์š”์†Œ์˜ ์ˆœ์„œ ์ง€์ •์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ๋‹จ์ˆœํžˆ ๊ณต์‹์ ์ธ ์ž‘์—…์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‘˜์งธ, ๋‚ด๋ถ€ ์ˆœ์„œ์กฐ์ฐจ ๋‹จ์ผ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค."

๊ทธ๋Ÿฌ๋‚˜ LinkedHashSet ์—์„œ ๋ฐ˜๋ณต์ž๋ฅผ ๊ฐ€์ ธ์™€ LinkedHashSet ์— ์ถ”๊ฐ€๋œ ์ˆœ์„œ๋Œ€๋กœ ๋ชจ๋“  ์š”์†Œ๋ฅผ โ€‹โ€‹ํ†ต๊ณผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ž์ฃผ ๋ฐœ์ƒํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋•Œ๋•Œ๋กœ ์ด๊ฒƒ์€ ๋งค์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค."

"๊ทธ๋ ‡๊ตฌ๋‚˜. ๋งŒ์•ฝ์˜ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด์„œ ์ˆ˜์—…์ด ์žˆ๋Š” ๊ฒŒ ์ข‹์•„. ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ๊ทธ๋ฆฌ ๋“œ๋ฌผ์ง€ ์•Š์•„."

" TreeSet์€ ๊ฐ’์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜์ž…๋‹ˆ๋‹ค. TreeSet <E> ์—๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๊ฐ’์„ ์ €์žฅํ•˜๋Š” TreeMap <E, Object>๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด TreeMap์€ ๊ท ํ˜• ์žกํžŒ ๋นจ๊ฐ• -๊ฒ€์ • ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์š”์†Œ . ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ์ถ”๊ฐ€, ์ œ๊ฑฐ ๋ฐ ํฌํ•จ ์ž‘์—…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค."

"๋„ค, ๊ธฐ์–ต๋‚˜๋„ค์š”. ์ตœ๊ทผ์— ์˜๋…ผํ–ˆ์–ด์š”. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒŒ ์–ด๋””์— ์“ฐ์ผ์ง€๋„ ์ƒ๊ฐํ–ˆ์–ด์š”."

"๊ทธ๋ฆฌ๊ณ  Java์˜ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์ปฌ๋ ‰์…˜ ์ค‘ ์ผ๋ถ€๊ฐ€ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค."

"๋„ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฉด์ ‘๊ด€์€ ์ข…์ข… TreeSet ์— ๋Œ€ํ•ด ๋ฌป์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ณดํ†ต ๋‹น์‹ ์„ ์†์ด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ 'TreeSet์ด ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ์š”์†Œ๊ฐ€ ํ•˜๋‚˜์˜ ๊ธด ๋ถ„๊ธฐ๋ฅผ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒ€์ƒ‰์— ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ยซTreeSet๊ณผ TreeMap์ด ๊ท ํ˜• ์žกํžŒ ์ ํ‘ ํŠธ๋ฆฌ ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์–ด๋ฆฐ์•„์ด๋„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.ยป

"์•„. ๊ทธ ์งˆ๋ฌธ์„ ํ•œ ์‚ฌ๋žŒ์˜ ์–ผ๊ตด์„ ๋ณด๊ณ  ์‹ถ๋‹ค. ๊ทธ ๋ฌธ๊ตฌ๋ฅผ ์™ธ์šธ ์ˆ˜๋„ ์žˆ๋‹ค. โ€ฆ"

"ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์„ธํŠธ๋Š” ๋‚ด๊ฐ€ ์ฒ˜์Œ์— ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๋งŒํผ ๋‹จ์ˆœํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค."

"๋ฐ˜๋ฉด์— Queue ์˜ ์ƒํ™ฉ์€ ํ›จ์”ฌ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค."

Set ๋ฐ Queue ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ - 2

" Queue๋Š” queue๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์š”์†Œ๋Š” queue์˜ ๋์— ์ถ”๊ฐ€๋˜๊ณ  ์•ž์ชฝ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค."

" ๊ธฐ์ˆ ์ ์œผ๋กœ ๋Œ€๊ธฐ์—ด์ด๊ธฐ๋„ ํ•œ LinkedList ๋ฅผ ์ œ์™ธํ•˜๊ณ  PriorityQueue ๋Š” ์‹ค์ œ๋กœ Queue ์ธํ„ฐํŽ˜์ด์Šค ์˜ ์œ ์ผํ•œ ํด๋ž˜์‹ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค ."

"์•Œ์•˜์–ด, ํ”ผ๊ณคํ•ด. ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€์•ผ. ๋‹ค์Œ ์‹œ๊ฐ„๊นŒ์ง€."