CS/์ž๋ฃŒ๊ตฌ์กฐ

    Hash ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํ•ด์‹œ ์ถฉ๋Œ

    Hash Table ์ด๋ž€ Hash Table์€ ๋ฐ์ดํ„ฐ๋ฅผ key-value ํ˜•์‹์œผ๋กœ ๋ณด๊ด€ํ•˜์—ฌ ๊ฒ€์ƒ‰ · ์‚ฝ์ž… · ์‚ญ์ œ๋ฅผ O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. Hash Table์€ key ๊ฐ’์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์—, key ๊ฐ’์€ ๊ณ ์œ ํ•ด์•ผํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ ์œ ํ•œ key ๊ฐ’์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์€ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ๋‹ด๋‹นํ•˜๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” key ๊ฐ’์˜ ASCII ๊ฐ’์„ ํ•ฉํ•˜์—ฌ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ key๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์—์„œ, ์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ์šฐ์—ฐํžˆ key ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๐Ÿ’ก ์ด๋ฅผ ํ•ด์‹œ ์ถฉ๋Œ์ด๋ผ๊ณ  ํ•œ๋‹ค. ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด, key ๊ฐ’์ด ์ค‘๋ณต๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋Œ€์ฒ˜ํ•ด์•ผํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ฒด์ธ๋ฒ• (Seperate C..

    ๋ณ‘ํ•ฉ ์ •๋ ฌ (Merge Sort) ์„ ๊ตฌํ˜„ํ•ด๋ณด์ž

    ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๐Ÿ’ก ์ •๋ ฌ์˜ ์ข…๋ฅ˜์™€ ๋ฐฉ์‹ 1. ๋ฒ„๋ธ” ์ •๋ ฌ : 2๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ณ„์† ๋น„๊ตํ•ด๋‚˜๊ฐ€๋ฉฐ ๊ฐ’์ด ํฐ ์›์†Œ๊ฐ€ ์•ž์— ์žˆ๋Š” ๊ฒฝ์šฐ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•œ๋‹ค. ์ œ์ผ ํฐ ๊ฐ’(์˜ค๋ฆ„์ฐจ์ˆœ์˜ ๊ฒฝ์šฐ)์„ ์ œ์ผ ๋’ค๋กœ ๋ณด๋‚ด์–ด ์ตœ์ข…์ ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ํ•œ๋ฒˆ ์ˆœํšŒํ–ˆ์„ ๋•Œ ๋‘ ์›์†Œ๊ฐ„ ์œ„์น˜๊ฐ€ ๋ณ€ํ•œ ์ ์ด ์—†๋‹ค๋ฉด ์ˆœํšŒ๋ฅผ ๋น ์ ธ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ์ตœ์ ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์„ ํƒ ์ •๋ ฌ : ์›์†Œ๋“ค์„ ์ˆœํšŒํ•˜์—ฌ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์€ ๋’ค(์„ ํƒ), ์ œ์ผ ์•ž ์›์†Œ์™€ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟˆ์œผ๋กœ์„œ ์ž‘์€ ๊ฐ’์ด ๊ณ„์† ์•ž์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^2)์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 3. ์‚ฝ์ž… ์ •๋ ฌ : 2๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ N๋ฒˆ์งธ ์›์†Œ๊นŒ์ง€ N-1๊นŒ์ง€์˜ ..

    Linked List ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ

    ๋ฆฌ์ŠคํŠธ์—๋Š” ์—ฐ์†ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ArrayList์™€ ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ์•ˆ์— ๋‹ค์Œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด ์—ฐ๊ฒฐ๋˜๋Š” LinkedList๊ฐ€ ์žˆ๋‹ค. ๊ฐ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๏ธโƒฃ ArrayList 1. ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ๋‚˜์—ด๋˜์–ด ์žˆ์–ด, ํŠน์ • ์ธ๋ฑ์Šค์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ O(1) ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์„ ํ˜• ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ O(n), ์ •๋ ฌ๋˜์–ด ์žˆ์„ ๋•Œ ์ด๋ถ„ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ O(logN) ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. 3. ์ค‘๊ฐ„ ์œ„์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž… · ์‚ญ์ œ ํ•˜๋Š” ๊ฒฝ์šฐ, ๋‚˜๋จธ์ง€ ์›์†Œ๋“ค์˜ ์œ„์น˜๋ฅผ ์˜ฎ๊ฒจ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(N) ์ด๋‹ค. 2๏ธโƒฃ LinkedList 1. ํŠน์ • ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•œ ์›์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ์—, ์ˆœํšŒ๋ฅผ ํ•ด์„œ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ O(N) ์ด๋‹ค. 2. ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ, ์‹œ์ž‘ ๋ถ€๋ถ„..