Banner

My Tech Blog (HashMap)

์‹ค๋ฌด์—์„œ Map์€ ์–ด๋””์— ์“ฐ์ผ๊นŒ?์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” ์ž๋ฐ”์˜ ๋งต(Map)์€ ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.์‚ฌ๋žŒ์„ ‘์ด๋ฆ„ = ํ™๊ธธ๋™’, ‘์ƒ์ผ = ๋ช‡ ์›” ๋ฉฐ์น ’ ๋“ฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด๋งต(Map) ์€ ๋Œ€์‘ ๊ด€๊ณ„๋ฅผ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ๋งต์€ ๋‹ค๋ฅธ ์–ธ์–ด์—๋„ ์žˆ๋Š” ์ž๋ฃŒํ˜•์œผ๋กœ, associative array ๋˜๋Š” hash๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. ๋งต์€ ๋ฆฌ์ŠคํŠธ๋‚˜ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ˆœ์ฐจ์ ์œผ๋กœ(sequential) ์š”์†Ÿ๊ฐ’์„ ๊ตฌํ•˜์ง€ ์•Š๊ณ , ํ‚ค(key)๋ฅผ ์ด์šฉํ•ด ๊ฐ’(value)์„ ์–ป๋Š”๋‹ค. ์šฐ๋ฆฌ๊ฐ€ baseball์ด๋ž€ ๋‹จ์–ด์˜ ๋œป์„ ์ฐพ์„ ๋•Œ ์‚ฌ์ „์˜ 1์ชฝ๋ถ€ํ„ฐ ๋ชจ๋‘ ์ฝ์ง€ ์•Š๊ณ  baseball์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์žˆ๋Š” ๊ณณ์„ ์ฐพ์•„ ํ™•์ธํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ Map์„ ํ™œ์šฉํ•˜๋ฉด ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์—์„œ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ์ค‘๋ณต๊ฐ’ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๋‹ค. ๋งต ์ž๋ฃŒํ˜•์—๋Š”..
1. ๋ฌธ์ œ์„ค๋ช…์ฝ”๋‹ˆ๋Š” ๋งค์ผ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•˜์—ฌ ์ž…๋Š”๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋‹ˆ๊ฐ€ ๊ฐ€์ง„ ์˜ท์ด ์•„๋ž˜์™€ ๊ฐ™๊ณ , ์˜ค๋Š˜ ์ฝ”๋‹ˆ๊ฐ€ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ธด ์ฝ”ํŠธ, ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ ๋ฅผ ์ž…์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๋‚ ์€ ์ฒญ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ ๋Œ€์‹  ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.์ข…๋ฅ˜์ด๋ฆ„์–ผ๊ตด๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค์ƒ์˜ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ ํ•˜์˜์ฒญ๋ฐ”์ง€๊ฒ‰์˜ท๊ธด ์ฝ”ํŠธ ์ฝ”๋‹ˆ๋Š” ๊ฐ ์ข…๋ฅ˜๋ณ„๋กœ ์ตœ๋Œ€ 1๊ฐ€์ง€ ์˜์ƒ๋งŒ ์ฐฉ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด ์œ„ ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ๊ณผ ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ๋™์‹œ์— ์ฐฉ์šฉํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ฐฉ์šฉํ•œ ์˜์ƒ์˜ ์ผ๋ถ€๊ฐ€ ๊ฒน์น˜๋”๋ผ๋„, ๋‹ค๋ฅธ ์˜์ƒ์ด ๊ฒน์น˜์ง€ ์•Š๊ฑฐ๋‚˜,ํ˜น์€ ์˜์ƒ์„ ์ถ”๊ฐ€๋กœ ๋” ์ฐฉ์šฉํ•œ ๊ฒฝ์šฐ์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์˜ท์„ ์ฐฉ์šฉํ•œ ๊ฒƒ์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.์ฝ”๋‹ˆ๋Š” ํ•˜๋ฃจ์— ์ตœ์†Œ ํ•œ ๊ฐœ์˜ ์˜์ƒ์€ ์ž…์Šต๋‹ˆ๋‹ค.์ฝ”๋‹ˆ๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ..
โค๏ธ ๋ฌธ์ œ์„ค๋ช…์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค.๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด participant์™€ ์™„์ฃผํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด completion์ด ์ฃผ์–ด์งˆ ๋•Œ, ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ๐Ÿ’› ์ œํ•œ์‚ฌํ•ญ- ๋งˆ๋ผํ†ค ๊ฒฝ๊ธฐ์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜์˜ ์ˆ˜๋Š” 1๋ช… ์ด์ƒ 100,000๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค.- completion์˜ ๊ธธ์ด๋Š” participant์˜ ๊ธธ์ด๋ณด๋‹ค 1 ์ž‘์Šต๋‹ˆ๋‹ค.- ์ฐธ๊ฐ€์ž์˜ ์ด๋ฆ„์€ 1๊ฐœ ์ด์ƒ 20๊ฐœ ์ดํ•˜์˜ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.- ์ฐธ๊ฐ€์ž ์ค‘์—๋Š” ๋™๋ช…์ด์ธ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ’š ์ž…์ถœ๋ ฅ ์˜ˆโ€‹์˜ˆ์ œ #1"leo"๋Š” ์ฐธ์—ฌ์ž ๋ช…๋‹จ์—๋Š” ์žˆ์ง€๋งŒ, ์™„์ฃผ์ž ๋ช…๋‹จ..
โœ… ๋ฌธ์ œ & ์ œ์•ฝ์กฐ๊ฑด โœ… ์ž…์ถœ๋ ฅ ์˜ˆ   โœ… ํ’€์ด ๊ณผ์ •์ผ๋‹จ ๋‘ ๊ฐœ์˜ ๋ฐฐ์—ด id_pw, db์— for ๋ฌธ์„ ๋Œ๋ ค์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐ ํ•ด ๋ดค๋‹ค. id_pw๋Š” 1์ฐจ์› ๋ฐฐ์—ด, db๋Š” 2์ฐจ์› ๋ฐฐ์—ด์ด๋ผ์„œ id_pw์˜ 0๋ฒˆ ์ธ๋ฑ์Šค๊ฐ€ ๋กœ๊ทธ์ธ ์‹œ๋„ํ•œ ์‚ฌ์šฉ์ž์˜ id๊ฐ’์ด ๋˜๊ณ  1๋ฒˆ ์ธ๋ฑ์Šค๊ฐ€ ํŒจ์Šค์›Œ๋“œ์ด๋‹ค. ๋ฐ˜๋ฉด db๋Š” 2์ฐจ์› ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— [ ] [ ] ํ˜•์‹์œผ๋กœ ์ ‘๊ทผ์„ ํ•ด ์ค˜์•ผ ํ•œ๋‹ค. [i][0] ์ด ์•„์ด๋””๊ฐ’์ด๊ณ  [i][1]์ด ํŒจ์Šค์›Œ๋“œ ๊ฐ’์ด๋‹ค. case 1 : id_pw์˜ ์•„์ด๋””๊ฐ’์ด db[i][0]๊ณผ ๊ฐ™๊ณ  id_pw์˜ ํŒจ์Šค์›Œ๋“œ ๊ฐ’์ด db[i][1] ์ด๋ž‘ ๊ฐ™์œผ๋ฉด  answer์— "login" ๊ฐ’ ๋„ฃ๊ธฐcase2 : id_pw์˜ ์•„์ด๋””๊ฐ’์ด db[i][0]๊ณผ ๊ฐ™์œผ๋‚˜ id_pw์˜ ํŒจ์Šค์›Œ๋“œ ๊ฐ’์ด db[i][1] ์ด๋ž‘ ๊ฐ™์ง€ ์•Š์œผ..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'HashMap' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ