MENU

Fun & Interesting

๐Ÿ’ก20๋ถ„ ๋งŒ์— Hash Deep Dive! ํ•ด์‹œ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค์ „ & ๋ฉด์ ‘๊นŒ์ง€! ํ•œ ๋ฒˆ์— ๋๋‚ด๋Š” ์™„๋ฒฝ ๊ฐ€์ด๋“œ!

Video Not Working? Fix It Now

Hash KEY : VALUE ๐Ÿ“Œ ํ•ด์‹œ์˜ ํ•ต์‹ฌ ๊ฐœ๋… ํ•ด์‹œ ํ•จ์ˆ˜ : ์ž„์˜์˜ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋กœ ๋งคํ•‘ ํ•ด์‹œ ํ•จ์ˆ˜์— ์˜ํ•ด ์–ป์–ด์ง€๋Š” ๊ฐ’ : ํ•ด์‹œ ๊ฐ’, ํ•ด์‹œ ์ฝ”๋“œ, ํ•ด์‹œ ์ฒดํฌ์„ฌ, ํ•ด์‹œ ๐Ÿ“Œ์ถฉ๋Œ(Collision) ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค๊ฐ€ ๋™์ผํ•œ ํ•ด์‹œ ๊ฐ’์„ ๊ฐ€์งˆ ๋•Œ ๋ฐœ์ƒํ•จ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ธฐ๋ฒ•(์˜ˆ: ์ฒด์ด๋‹, ๊ฐœ๋ฐฉ ์ฃผ์†Œ๋ฒ• ๋“ฑ)์ด ์‚ฌ์šฉ ๐Ÿ“ŒHashMap ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ •๋ฆฌ get, put, search : ํ‰๊ท ์ ์œผ๋กœ๋Š” O(1) get, put, search : ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” O(N) (JDK 7 ์ดํ•˜) ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— get, put, search : ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” O(logN) (JDK 8 ์ด์ƒ) Balanced Tree ์‚ฌ์šฉ ๐Ÿ“ŒJava์—์„œ HashMap ์—์„œ ํ™œ์šฉ๋„ ๋†’์€ ํ•จ์ˆ˜ ์ •๋ฆฌ containsKey(Object key) Returns true if this map contains a mapping for the specified key. get(Object key) : Returns the value to which the specified key is mapped getOrDefault(Object key, V defaultValue) : Returns the value to which the specified key is mapped, or defaultValue if this map contains no mapping for the key. put(K key, V value) : Associates the specified value with the specified key in this map. ๐Ÿ“Œ 31 ์†Œ์ˆ˜๋ฅผ ๊ณฑํ•˜๋ฉด ์™œ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐ๋ ๊นŒ? ํ•ด์‹œ ํ•จ์ˆ˜์—์„œ ์†Œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ํ•ด์‹œ ๊ฐ’์˜ ๊ท ๋“ฑ ๋ถ„ํฌ๋ฅผ ์ด‰์ง„ํ•จ ์—ฌ๊ธฐ์„œ ์†Œ์ˆ˜๋ฅผ ๊ณฑํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜ํ•™์  ํŠน์„ฑ๊ณผ ์ด์ ์ด ์žˆ์Œ ์†Œ์ˆ˜์˜ ๊ท ๋“ฑ ๋ถ„ํฌ ํŠน์„ฑ ์†Œ์ˆ˜๋Š” ๊ทธ ์ž์ฒด๋กœ ๋‹ค๋ฅธ ์ˆ˜์— ์˜ํ•ด ๋‚˜๋ˆ„์–ด์ง€์ง€ ์•Š๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ ์ด๋Š” ์†Œ์ˆ˜๊ฐ€ ๊ณฑํ•ด์ง„ ๊ฒฐ๊ณผ๊ฐ€ ๊ธฐ์กด์˜ ํŒจํ„ด์ด๋‚˜ ์ฃผ๊ธฐ์„ฑ์„ ๊นจ๋œจ๋ฆฌ๋Š”๋ฐ ๋„์›€์„ ์คŒ ๋”ฐ๋ผ์„œ ํ•ด์‹œ ๊ฐ’์˜ ๊ท ๋“ฑ ๋ถ„ํฌ๋ฅผ ์ด‰์ง„ํ•˜์—ฌ ํ•ด์‹œ ์ถฉ๋Œ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ ๋ฌธ์ œ ๋งํฌ : https://leetcode.com/problems/ransom-note/description/ *** ๋ฌธ์ œ ํ’€์ด *** 1) magazine์˜ ๋ฌธ์ž์™€ ๋นˆ๋„์ˆ˜ ์ €์žฅ 2) ransomNote์˜ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ map์—์„œ ๋ฌธ์ž๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์นด์šดํŠธ๋ฅผ ๊ฐ์†Œ 2-1) ์ค‘๊ฐ„ ๊ณผ์ •์— ๋ฌธ์ž๋กœ ๊ฒ€์ƒ‰์„ ํ–ˆ์„ ๋•Œ 0์ด๊ฑฐ๋‚˜ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฉด false 3) ๋ฐ˜๋ณต๋ฌธ์„ ๋งˆ์ณค๋‹ค๋Š” ์˜๋ฏธ๋Š” magazine์„ ๊ฐ€์ง€๊ณ  ransomNote๋ฅผ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž„ true M : magazine์˜ ๋ฌธ์ž์—ด ๊ธธ์ด N : ransomNote์˜ ๋ฌธ์ž์—ด ๊ธธ์ด ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(M + N) ๊ณต๊ฐ„ ๋ณต์žก๋„ : O(1) #leetcode #problemsolving #ํ•ด์™ธ์ทจ์—… #๋น…ํ…Œํฌ #์ฝ”ํ…Œ #์ฝ”๋”ฉํ…Œ์ŠคํŠธ #array #hash #์„ฑ๋Šฅ#java #python #cplusplus #javascript #์ฝ”๋”ฉ #๊ฐœ๋ฐœ์ž #coding #developer #algorithm #datastructures #๊ฐœ๋ฐœ์ž์ทจ์—… #์ฝ”๋”ฉ๊ณต๋ถ€ #๊ฐœ๋ฐœ์ž๋ฉด์ ‘ #๊ฐœ๋ฐœ์žํฌํŠธํด๋ฆฌ์˜ค #๊ฐœ๋ฐœ์ž๊ณต๋ถ€ #chatgpt #claude chatgpt๋กœ ์ž๋ฐ”์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ์–ธ์–ด#python #cplusplus #javascript ์ˆ˜์ •

Comment