Banner

My Tech Blog (HashMap)

์˜ค๋Š˜์˜ ๋ช…์–ธ
" ๋ˆˆ์„ ๋œจ๊ณ ๋„ ์–ด๋‘  ์†์— ์‚ฌ๋Š” ๊ฒƒ์€ ์ฐธ์„ ์ˆ˜ ์—†๋‹ค. "
- ํ—ฌ๋ Œ ์ผˆ๋Ÿฌ (๋ฏธ๊ตญ ์ž‘๊ฐ€, ์‚ฌํšŒ์šด๋™๊ฐ€, ๊ฐ•์—ฐ๊ฐ€)
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ํ’€์ด๊ณผ์ •๋ฌธ์ œ์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ด์šฉ์ž ID๊ฐ€ ๋‹ด๊ธด `id_list`, ๊ฐ ์ด์šฉ์ž๊ฐ€ ์‹ ๊ณ ํ•œ ์ด์šฉ์ž์˜ ID๊ฐ€ ๋‹ด๊ธด ๋ฌธ์ž์—ด ๋ฐฐ์—ด `report`, ๊ทธ๋ฆฌ๊ณ  ์ •์ง€ ๊ธฐ์ค€์ด ๋˜๋Š” ์‹ ๊ณ  ํšŸ์ˆ˜ `k` ์ด๋‹ค. ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ ์œ ์ €๋ณ„๋กœ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ ๋ฉ”์ผ์„ ๋ฐ›์€ ํšŸ์ˆ˜๋ฅผ ๋ฐฐ์—ด ํ˜•์‹์œผ๋กœ ๋ฆฌํ„ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์„ Canva๋กœ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.  muzi๋ฅผ ์‹ ๊ณ ํ•œ ์‚ฌ๋žŒ : apeach (1)frodo๋ฅผ ์‹ ๊ณ ํ•œ ์‚ฌ๋žŒ : muzi, apeach (2)apeach๋ฅผ ์‹ ๊ณ ํ•œ ์‚ฌ๋žŒ : ์—†์Œ (0)neo๋ฅผ ์‹ ๊ณ ํ•œ ์‚ฌ๋žŒ : muzi, frodo (2)ํ•ด์‹œ๋งต์œผ๋กœ ํ‘ธ๋Š” ๋ฌธ์ œ๋ผ๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ํ‚ค๋Š” ์‹ ๊ณ ๋ฅผ ๋‹นํ•œ ์œ ์ €, ๊ฐ’์€ ์‹ ๊ณ ํ•œ ์œ ์ €๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค. ์ด ๋•Œ ๋ฌธ์ œ์— `ํ•œ ์œ ์ €๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹ ๊ณ ํ•ด๋„ ์‹ ..
์‹ค๋ฌด์—์„œ 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] ์ด๋ž‘ ๊ฐ™์ง€ ์•Š์œผ..
์ƒ๋‹จ์œผ๋กœ