๐Ÿงฌ ํ•ด์‹œ

ํ•ด์‹ฑ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์•„์ฃผ ๋น ๋ฅด๊ฒŒ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๊ธฐ๋ฒ•์ด๋‹ค.


ํ•ด์‹œ ๊ตฌ์กฐ


ํ•ด์‰ฌํ…Œ์ด๋ธ” : Key์— Value๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
ํ•ด์‹ฑ ํ•จ์ˆ˜ : key์— ๋Œ€ํ•ด ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜

ํ•ด์‹ฑ์˜ ํ•ต์‹ฌ์€ ๋„“์€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•ด, ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ๊ณผ ๊ฒ€์ƒ‰ ์‹œ ๋ฐœ์ƒ๋˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ €์žฅ์˜ ๊ฒฝ์šฐ key๋ฅผ ๋„ฃ์œผ๋ฉด ํ•ด์‹ฑํ•จ์ˆ˜๊ฐ€ ๊ณ ์œ ์ˆซ์ž๋ฅผ ๋ฆฌํ„ดํ•˜๋Š”๋ฐ ์ด ๊ฐ’์„ ์ฃผ์†Œ๋กœ ํ•˜๋Š” ์ €์žฅ๊ณต๊ฐ„์— value๋ฅผ ์ €์žฅํ•œ๋‹ค.

๋ฐ˜๋Œ€๋กœ ๊ฒ€์ƒ‰์˜ ๊ฒฝ์šฐ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•ด์‹ฑํ•จ์ˆ˜์— key๋ฅผ ๋„ฃ์–ด ์ฐพ๊ณ ํ•˜์ž ํ•˜๋Š” ๊ฒƒ์˜ ์ฃผ์†Œ๋ฅผ ๋ฆฌํ„ด๋ฐ›์•„ ๊ทธ ์ €์žฅ๊ณต๊ฐ„์„ ์ฐพ์•„ ์ฝ์œผ๋ฉด ๋œ๋‹ค.



ํŒŒ์ด์ฌ Hash


ํŒŒ์ด์ฌ์—์„œ ๋งค์šฐ ๋งค์šฐ ๋งค์šฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” Dictionary๋Š” ์ด ํ•ด์‹œ ํ…Œ์ด๋ธ”๋กœ ๊ตฌํ˜„๋œ๋‹ค.

ํ•ด์‹œ๋Š” key-value ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ ํŒŒ์ด์ฌ์˜ dictionary๋Š” Json ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

hash = {
    'color' = 'green'
    'age' = 24
}

๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ์ €์žฅ๋˜๋ฉด value๊ฐ’์€ dictionary_name['key_name'] ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.


์œ ์šฉํ•œ ํ•จ์ˆ˜

  • {dictionary}.keys()
    ๋ชจ๋“  ํ‚ค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋ฉด ํ™œ์šฉ๋„๊ฐ€ ๋†’์•„์ง„๋‹ค.

  • dictionary[key] = [๋ฆฌ์ŠคํŠธ] or diction[key].append([๋ฆฌ์ŠคํŠธ])
    key๊ฐ’์ด ์—†๋Š” ์ƒํƒœ๋ฉด ์ƒˆ๋กœ์šด ํ‚ค์— ๋Œ€ํ•œ value๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์ด๋ฏธ ์žˆ๋Š” ์ƒํƒœ๋ฉด key์˜ value์ธ ๋ฆฌ์ŠคํŠธ์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.



์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ?


ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ๋ฆฌ์ŠคํŠธ๋ฅผ ์“ธ ์ˆ˜ ์—†์„ ๋•Œ

๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ ๊ฐ’์„ ๋ฝ‘์„ ๋•Œ ์ธ๋ฑ์Šค๋Š” ๋ฌด์กฐ๊ฑด ์ •์ˆ˜์ด๋‹ค. ๋งŒ์•ฝ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด์ด๋‚˜ ํŠœํ”Œ์„ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•  ๋•Œ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

2. ๋น ๋ฅธ ์ ‘๊ทผ, ํƒ์ƒ‰

๋”•์…”๋„ˆ๋ฆฌ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๋Œ€๋ถ€๋ถ„ O(1)์ด๋ฏ€๋กœ ๋งค์šฐ ๋น ๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

3. ์ง‘๊ณ„๊ฐ€ ํ•„์š”ํ•  ๋•Œ

์›์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์…€ ๋•Œ from collection import counter์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น ๋ฅธ ์ง‘๊ณ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

string_ex = 'aaaaabbbbbbccccccaaaaddddd'
c1 = Counter(string_ex)
c1 # Counter({'a': 9, 'b': 6, 'c': 6, 'd': 5})

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ