[Go] Map ์›๋ฆฌ์™€ ํ™œ์šฉ(feat. hash)
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/Go
์†Œ๊ฐœGo์˜ map์€ ๋งค์šฐ ์ค‘์š”ํ•œ ๋‚ด์žฅ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, key-value ํ˜•ํƒœ์˜ ํ•ด์‹œ ํ…Œ์ด๋ธ”(hash table) ๊ธฐ๋ฐ˜ ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค.์›๋ฆฌ (๋‚ด๋ถ€ ๊ตฌ์กฐ)Go์˜ map์€ hash table์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.ํ•ต์‹ฌ ๊ฐœ๋…Key → Hashing → Bucket → Valueํ•ด์‹œ ํ•จ์ˆ˜(hash(key))๋ฅผ ํ†ตํ•ด ๋ฒ„ํ‚ท(bucket) ์ธ๋ฑ์Šค๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๊ทธ ๋ฒ„ํ‚ท์— key-value ์Œ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ฐ™์€ ๋ฒ„ํ‚ท ์•ˆ์˜ ์Šฌ๋กฏ์— ์ฒด์ด๋‹(chaining) ํ˜•ํƒœ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.๋‚ด๋ถ€ ๊ตฌ์กฐ ๊ฐœ์š”Go ๋Ÿฐํƒ€์ž„์—์„œ map์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค (runtime/map.go ์ฐธ๊ณ ):type hmap struct { count int // ์š”์†Œ ๊ฐœ์ˆ˜ flags u..
ํŒŒ์ด์ฌ map, filter ํ•จ์ˆ˜(with. iterator)
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/Python
iterator(๋ฐ˜๋ณต์ž) ํŒŒ์ด์ฌ์—์„œ iterator(๋ฐ˜๋ณต์ž)๋Š” ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. Iterator๋Š” __iter__์™€ __next__ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋กœ, __iter__๋Š” ์ž๊ธฐ ์ž์‹ ์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , __next__๋Š” ๋‹ค์Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๋” ์ด์ƒ ๋ฐ˜ํ™˜ํ•  ๊ฐ’์ด ์—†์„ ๋•Œ StopIteration ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์ˆœํšŒ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ„๋‹จํ•œ iterator๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค class MyIterator: def __init__(self, start, end): self.start = start self.end = end def __iter__(self): return self def __next__(self): if self.start >= self.end: rai..
[C++] 18. Standard Library ์ •๋ณตํ•˜๊ธฐ(STL)
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ๊ธฐ์ดˆ
STL์ด๋ž€? C++ STL(Standard Template Library)์€ C++ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ค‘์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ, ์—ฌ๋Ÿฌ ์œ ์šฉํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ์ปฌ๋ ‰์…˜์ž…๋‹ˆ๋‹ค. STL์€ C++ ํ‘œ์ค€์ด๋ฏ€๋กœ C++ ์–ธ์–ด์— ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋งŽ์€ C++ ์ปดํŒŒ์ผ๋Ÿฌ์™€ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. STL์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” 'ํ…œํ”Œ๋ฆฟ(Template)'์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๋„ค๋ฆญ(generic)ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„๋œ STL ์ปจํ…Œ์ด๋„ˆ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํŠน์ • ์ž๋ฃŒํ˜•์— ์ข…์†๋˜์ง€ ์•Š๊ณ , ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•ด ์žฌ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์ผ๋ฐ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. STL์€ ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. 1. ์ปจํ…Œ์ด๋„ˆ (Conta..