๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ (Red-Black Tree)
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 4. 18. 11:13๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ (Red-Black Tree)

์•„์‰ฝ๊ฒŒ๋„ ์ด Rbt.๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.0. ๋ชฉ์ฐจ๋”๋ณด๊ธฐ1. ๊ฐœ๋… ์ •์˜2. ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ์˜ ๊ทœ์น™ 5๊ฐœ์กฐ3. ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ์‚ฝ์ž…4. ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ์‚ญ์ œ5. ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ๊ฒ€์ƒ‰6. ๊ธฐํƒ€ ํŠน์ง•7. ์ฐธ๊ณ ๋ฌธํ—Œ1. ๊ฐœ๋… ์ •์˜๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ (Red-Black Tree, RBT)๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST)์˜ ์ผ์ข…์œผ๋กœ, ๋…ธ๋“œ๋งˆ๋‹ค ์ (่ตค)๋˜๋Š” ํ‘(้ป’)์ƒ‰์„ ๋ง์ž…ํ˜€ ๊ท ํ˜•์„ ์œ ์ง€ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฒ€์ƒ‰์ด ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ O(log n)์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ์˜ ๋…ํŠนํ•œ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋กœ NIL ๋…ธ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. RBT์—์„œ ๋ชจ๋“  ๋ฆฌํ”„ ๋…ธ๋“œ๋Š” NIL ๋…ธ๋“œ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํŠธ๋ฆฌ๋‚ด ๋ชจ๋“  ๋ฆฌํ”„๋Š” NULL์ด ์•„๋‹ˆ๋ผ (์ฆ‰, ๊ทธ๋ƒฅ ๋น„์›Œ๋†“๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ) NIL ๋…ธ๋“œ๊ฐ€ ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ..

C์–ธ์–ด์˜ ํฌ์ธํ„ฐ (๊ธฐ์ดˆ)
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 4. 17. 15:52C์–ธ์–ด์˜ ํฌ์ธํ„ฐ (๊ธฐ์ดˆ)

Unused์˜ C์–ธ์–ด ํฌ์ธํ„ฐ ์‹œ๋ฆฌ์ฆˆํฌ์ŠคํŠธURLC์–ธ์–ด์˜ ํฌ์ธํ„ฐ (๊ธฐ์ดˆ)https://unused.tistory.com/221C์–ธ์–ด์˜ ํฌ์ธํ„ฐ ์ดํ•ด: ์„ ์–ธ์œผ๋กœ์„œ์˜ *, ์—ฐ์‚ฐ์ž๋กœ์„œ์˜ *https://unused.tistory.com/217C์–ธ์–ด์˜ ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐhttps://unused.tistory.com/220C์–ธ์–ด์˜ ๋‹ค์ค‘ ํฌ์ธํ„ฐhttps://unused.tistory.com/215 ์ธํŠธ๋กœํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋ฉด “๋ณ€์ˆ˜(์œ„ ๊ทธ๋ฆผ์˜ โ‘ )”๋Š” ์ต์ˆ™ํ•˜์ง€๋งŒ, “ํฌ์ธํ„ฐ(์œ„ ๊ทธ๋ฆผ์˜ โ‘ก)”๋ž€ ๊ฐœ๋…์€ ๋‚ฏ์„ค๊ณ  ์–ด๋ ต๊ฒŒ ๋А๊ปด์ง‘๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์‚ฌ์‹ค, ํฌ์ธํ„ฐ ๊ฐœ๋… ์ž์ฒด๋Š” ์–ด๋ ค์šธ ๊ฒŒ ์—†์Šต๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋Š” “๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•œ ๋ณ€์ˆ˜”์— ๋ถˆ๊ณผํ•˜๊ฑฐ๋“ ์š”. ๋ฌธ๋ฒ•์ ์œผ๋กœ ์ข€ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ๋˜์–ด ์žˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค (์ด๋ฒˆ ํฌ์ธํ„ฐ ์‹œ๋ฆฌ์ฆˆ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋А๋‚€ ๊ฐœ..

C์–ธ์–ด์˜ ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐ
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 4. 17. 14:19C์–ธ์–ด์˜ ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐ

Unused์˜ C์–ธ์–ด ํฌ์ธํ„ฐ ์‹œ๋ฆฌ์ฆˆํฌ์ŠคํŠธURLC์–ธ์–ด์˜ ํฌ์ธํ„ฐ (๊ธฐ์ดˆ)https://unused.tistory.com/221C์–ธ์–ด์˜ ํฌ์ธํ„ฐ ์ดํ•ด: ์„ ์–ธ์œผ๋กœ์„œ์˜ *, ์—ฐ์‚ฐ์ž๋กœ์„œ์˜ *https://unused.tistory.com/217C์–ธ์–ด์˜ ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐhttps://unused.tistory.com/220C์–ธ์–ด์˜ ๋‹ค์ค‘ ํฌ์ธํ„ฐhttps://unused.tistory.com/215์œ„ ์ด๋ฏธ์ง€์˜ for๋ฌธ์„ ํ•œ๋ฒˆ ๋ณด์‹œ์ง€์š”. ํ‰์†Œ ์งœ๋˜ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฅด์ง€ ์•Š์œผ์‹ ๊ฐ€์š”? C์–ธ์–ด์—์„œ๋Š” ๋ฐฐ์—ด์ด ๊ณง ํฌ์ธํ„ฐ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๊ธฐ์— ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.int arr[5] = {10, 20, 30, 40, 50};int *p = arr; // p๋Š” arr์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์—ฌ๊ธฐ์„œ arr์€ ๋ฐฐ์—ด ์ „์ฒด๋ฅผ ์˜๋ฏธํ•˜์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ๋งฅ์—์„œ..

C์–ธ์–ด์˜ ํฌ์ธํ„ฐ ์ดํ•ด: ์ž๋ฃŒํ˜•์œผ๋กœ์„œ์˜ *์™€ ์—ญ์ฐธ์กฐ ์—ฐ์‚ฐ์ž๋กœ์„œ์˜ *
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 4. 14. 14:14C์–ธ์–ด์˜ ํฌ์ธํ„ฐ ์ดํ•ด: ์ž๋ฃŒํ˜•์œผ๋กœ์„œ์˜ *์™€ ์—ญ์ฐธ์กฐ ์—ฐ์‚ฐ์ž๋กœ์„œ์˜ *

Unused์˜ C์–ธ์–ด ํฌ์ธํ„ฐ ์‹œ๋ฆฌ์ฆˆํฌ์ŠคํŠธURLC์–ธ์–ด์˜ ํฌ์ธํ„ฐ (๊ธฐ์ดˆ)https://unused.tistory.com/221C์–ธ์–ด์˜ ํฌ์ธํ„ฐ ์ดํ•ด: ์„ ์–ธ์œผ๋กœ์„œ์˜ *, ์—ฐ์‚ฐ์ž๋กœ์„œ์˜ *https://unused.tistory.com/217C์–ธ์–ด์˜ ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐhttps://unused.tistory.com/220C์–ธ์–ด์˜ ๋‹ค์ค‘ ํฌ์ธํ„ฐhttps://unused.tistory.com/215 ์ธํŠธ๋กœ์•„๋ž˜์™€ ๊ฐ™์€ C ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.void main() { int value = 123; int *ptr1 = &value; printf("*ptr1: %d\n", *ptr1); // ์ถœ๋ ฅ ๊ฒฐ๊ณผ 123 *ptr1 = 456; printf("*ptr1: %d\n", *ptr1); // ์ถœ๋ ฅ ๊ฒฐ๊ณผ 4..

C์–ธ์–ด์˜ ๋‹ค์ค‘ ํฌ์ธํ„ฐ
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 4. 13. 01:08C์–ธ์–ด์˜ ๋‹ค์ค‘ ํฌ์ธํ„ฐ

Unused์˜ C์–ธ์–ด ํฌ์ธํ„ฐ ์‹œ๋ฆฌ์ฆˆํฌ์ŠคํŠธURLC์–ธ์–ด์˜ ํฌ์ธํ„ฐ (๊ธฐ์ดˆ)https://unused.tistory.com/221C์–ธ์–ด์˜ ํฌ์ธํ„ฐ ์ดํ•ด: ์„ ์–ธ์œผ๋กœ์„œ์˜ *, ์—ฐ์‚ฐ์ž๋กœ์„œ์˜ *https://unused.tistory.com/217C์–ธ์–ด์˜ ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐhttps://unused.tistory.com/220C์–ธ์–ด์˜ ๋‹ค์ค‘ ํฌ์ธํ„ฐhttps://unused.tistory.com/215 C์–ธ์–ด์—์„œ ํฌ์ธํ„ฐ๋Š” ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํฌ์ธํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋‹ค ๋ณด๋ฉด ๋ณ„์ด 2๊ฐœ ์ด์ƒ, ์ฆ‰ ๋‹ค์ค‘ ํฌ์ธํ„ฐ๋ฅผ ์จ์•ผ๋งŒ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ฑฐ๋‚˜, ํ•จ์ˆ˜์—์„œ ํฌ์ธํ„ฐ ์ž์ฒด๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ๋‹ค์ค‘ ํฌ์ธํ„ฐ(pointer to pointer)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ํฌ์ธํ„ฐ(*) ..

์ด๋ถ„ ํƒ์ƒ‰๊ณผ Python์˜ bisect_left
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 3. 27. 20:31์ด๋ถ„ ํƒ์ƒ‰๊ณผ Python์˜ bisect_left

์ด๋ถ„ ํƒ์ƒ‰(binary search)๋ž€, ์–ด๋–ค ๋ฐฐ์—ด๊ณผ ์ฐพ๊ณ ์ž ํ•˜๋Š” ์ˆ˜๊ฐ€ ์žˆ์„ ๋•Œ, ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ขํ˜€๊ฐ€๋ฉฐ ๋น ๋ฅด๊ฒŒ ํ•ด๋‹น ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์—์„œ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํƒ์ƒ‰ ๊ธฐ๋ฒ•์œผ๋กœ, ๋‹จ์ˆœํ•œ ์ •๋ ฌ ๋ฐฐ์—ด ํƒ์ƒ‰๋ถ€ํ„ฐ, ๊ฒฝ๊ณ„๊ฐ’ ์ฐพ๊ธฐ, ์‘์šฉ ๋ฌธ์ œ๊นŒ์ง€ ๋งค์šฐ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ์ถœ์ œ๋ฉ๋‹ˆ๋‹ค. ๋งค ๋ฐ˜๋ณต๋งˆ๋‹ค ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ด๊ธฐ์— O(log n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๊ฐ’์˜ ๋Œ€์†Œ๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ๋ฒ”์œ„๋ฅผ ์žก๊ธฐ์— ๋ฐฐ์—ด์ด ๋ฐ˜๋“œ์‹œ ์ •๋ ฌ๋จ์„ ์ „์ œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.๊ตฌํ˜„: ๋ฐ˜๋ณต vs. ์žฌ๊ท€์ด๋ถ„ ํƒ์ƒ‰์€ ๋จผ์ € ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋ ์ธ๋ฑ์Šค๋ฅผ ์žก๊ณ , ๊ทธ ๋‘˜์˜ ์ค‘๊ฐ„ (๋˜๋Š” ์•ˆ ๋‚˜๋ˆ ๋–จ์–ด์งˆ ๊ฒฝ์šฐ ํ•œ ์นธ ์™ผ์ชฝ) ์ธ๋ฑ์Šค๋ฅผ ์žก๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ •ํ™•ํ•œ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์‹œ์ž‘, ์ค‘๊ฐ„, ๋ ์ธ๋ฑ์Šค๋ฅผ..

Python ์ปดํ”„๋ฆฌํ—จ์…˜ ๋ฐ ํ‘œํ˜„์‹ ์ •๋ฆฌ
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 3. 27. 17:14Python ์ปดํ”„๋ฆฌํ—จ์…˜ ๋ฐ ํ‘œํ˜„์‹ ์ •๋ฆฌ

Python์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•  ๋•Œ ๋†“์น  ์ˆ˜ ์—†๋Š” ๊ฐœ๋…๋“ค ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ์ปดํ”„๋ฆฌํ—จ์…˜(comprehension)๊ณผ ํ‘œํ˜„์‹(expression)์ž…๋‹ˆ๋‹ค. Python์—์„œ๋Š” ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” list comprehension, generator expression, conditional expression(์‚ผํ•ญ ์—ฐ์‚ฐ์ž) ๋“ฑ์„ ์ œ๊ณตํ•˜์—ฌ, ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉ ์‹œ ์„ฑ๋Šฅ(์‹คํ–‰์†๋„)๊ณผ ๊ฐ„๊ฒฐํ•จ์„ ๋‘˜ ๋‹ค ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ๊ฐ์ข… ์ปดํ”„๋ฆฌํ—จ์…˜ ๋ฐ ํ‘œํ˜„์‹์˜ ๊ฐœ๋…๊ณผ ์‚ฌ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.์•„์šธ๋Ÿฌ, ์ด๋“ค์— ๋žŒ๋‹ค(lambda)์‹๊นŒ์ง€ ์ ์šฉํ•œ ์˜ˆ์ œ๋„ ํ•œ๋ฒˆ ์‚ดํŽด๋ณด์‹œ๊ฒ ์Šต๋‹ˆ๋‹ค.๋ชฉ์ฐจ:1. List Comprehensions2. Set Comprehensions3. Dictionary Comprehensions4..

[์Šคํฌ๋žฉ]  CS:APP ๋น„ํŠธ์—ฐ์‚ฐ ๊ณผ์ œ bits.c ๋‹ต์•ˆ
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2016. 11. 6. 15:45[์Šคํฌ๋žฉ] CS:APP ๋น„ํŠธ์—ฐ์‚ฐ ๊ณผ์ œ bits.c ๋‹ต์•ˆ

/* * CS:APP Data Lab * * bits.c - Source file with your solutions to the Lab. * This is the file you will hand in to your instructor. * * WARNING: Do not include the header; it confuses the dlc * compiler. You can still use printf for debugging without including * , although you might get a compiler warning. In general, * it's not good practice to ignore compiler warnings, but in this ..

image