๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (165)

Today, I will

[Python] ๋ฐฑ์ค€ ๋น—๋ฌผ 14719 - Monotonic stack

1. ๋ฐฑ์ค€ 14719๋ฒˆ(๋น—๋ฌผ) ํ’€์ด ๋ฐฉ๋ฒ• ๋ชจ๋…ธํ†ค ์Šคํƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Monotonic stack ๋ชจ๋…ธํ†ค ์Šคํƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ์ด ๋น„์–ด ์žˆ๊ฑฐ๋‚˜, ์Šคํƒ์˜ ๋งจ ์œ„์— ์žˆ๋Š” ์›์†Œ๊ฐ€ ํ˜„์žฌ ์›์†Œ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ, ํ˜„์žฌ ์›์†Œ๋ฅผ ์Šคํƒ์— push ํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ์˜ ๋งจ ์œ„์— ์žˆ๋Š” ์›์†Œ๊ฐ€ ํ˜„์žฌ ์›์†Œ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ, ์Šคํƒ์—์„œ ์›์†Œ๋ฅผ ๊บผ๋‚ด๋ฉด์„œ ๋น—๋ฌผ์˜ ์–‘์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ๋น—๋ฌผ์˜ ์–‘์€ ์Šคํƒ์—์„œ ๊บผ๋‚ธ ์›์†Œ์™€ ํ˜„์žฌ ์›์†Œ ์‚ฌ์ด์— ๊ณ ์ผ ์ˆ˜ ์žˆ๋Š” ๋น—๋ฌผ์˜ ์–‘์ž…๋‹ˆ๋‹ค. ๋น—๋ฌผ์˜ ์–‘์„ ๊ณ„์‚ฐํ•œ ํ›„, ์Šคํƒ์— ํ˜„์žฌ ์›์†Œ๋ฅผ push ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋ชจ๋“  ์›์†Œ์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•˜๋ฉด, ์Šคํƒ์—๋Š” ๋ชจ๋…ธํ†คํ•œ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ์ €์žฅ๋˜๊ณ , ๋น—๋ฌผ์˜ ์–‘์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋…ธํ†ค ์Šคํƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n)์œผ..

์ •๊ธ€์‚ฌ๊ด€ํ•™๊ต 6๊ธฐ ํšŒ๊ณ , 5~6์ฃผ์ฐจ ํฉ๋‚ ๋ฆฌ๋Š” ๋ฒš๊ฝƒ๊ณผ C์–ธ์–ด

1. ๋“ค์–ด๊ฐ€๋ฉฐ ์•ˆ๋…•ํ•˜์„ธ์š”! FlyDuck Dev๐Ÿฆข ์ž…๋‹ˆ๋‹ค. ์นด์ด์ŠคํŠธ ๋ฌธ์ง€์บ ํผ์Šค์˜ ๋ฒš๊ฝƒ ์ฃผ๊ฐ„์— ์ •๊ธ€์—์„œ๋Š” C์–ธ์–ด์˜ ์‹œ๊ฐ„์ด ํŽผ์ณ์กŒ์Šต๋‹ˆ๋‹ค. 4์ฃผ์ฐจ๊นŒ์ง€์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ๊ฐ„์ด ๋๋‚˜๊ณ , ์ •๊ธ€์‚ฌ๊ด€ํ•™๊ต 5์ฃผ์ฐจ๋ถ€ํ„ฐ 6์ฃผ์ฐจ ๋™์•ˆ C์–ธ์–ด๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ, ๋”๋ธ”๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋ฅผ ์ดํ•ดํ•˜์˜€๊ณ , 5์ฃผ์ฐจ ๋ ˆ๋“œ๋ธ”๋ž™ํŠธ๋ฆฌ ๊ตฌํ˜„๊ณผ 6์ฃผ์ฐจ malloc ๋žฉ ๊ณผ์ œ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๊ธ€ ๋ฒš๊ฝƒ ์ฃผ๊ฐ„์— C์–ธ์–ด๋ฅผ ์ตํžˆ๊ณ  ์“ฐ๋Š” ๊ณผ์ •๋“ค ์†์—์„œ ๋А๊ผˆ๋˜ ์ด๋ชจ์ €๋ชจ์™€ ์ƒํ™œ ํŒจํ„ด ๋ฐ ์ƒ๊ฐ์˜ ๋ณ€ํ™”๋“ค์„ ํฌ์ŠคํŒ…ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. 2. week05, ๋ฒš๊ฝƒ๊ณผ C์–ธ์–ด 5์ฃผ์ฐจ์—๋Š” C์–ธ์–ด๋กœ ๋ ˆ๋“œ๋ธ”๋ž™ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” C์–ธ์–ด๋ฅผ ์–•๊ฒŒ ๊ณต๋ถ€ํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ์—ˆ์ง€๋งŒ, ์ •๊ธ€์— ์˜จ ๊น€์— C์–ธ์–ด ์ฑ…์„ ํ•œ๊ถŒ์„ ์ œ๋Œ€๋กœ ์”น์–ด๋จน์–ด ๋ณด์ž๋Š” ์ƒ๊ฐ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธฐํšŒ๊ฐ€ ์•„๋‹ˆ๋ฉด ์ œ๋Œ€๋กœ C์–ธ..

[CS:APP] Explicit Free Lists ๊ตฌํ˜„

1. Explicit Free Lists ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š”! FlyDuck Dev๐Ÿฆข์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Explicit Free Lists๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์„ ํ† ๋Œ€๋กœ, ์ฃผ์š” ๋กœ์ง ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ฌต์‹œ์  ๊ฐ€์šฉ ๋ฆฌ์ŠคํŠธ์™€ ๋‹ค๋ฅธ ์ฃผ์š”ํ•œ ์ฐจ์ด์ ์€ (1) ํฌ์ธํ„ฐ 2๊ฐœ๊ฐ€ ์ถ”๊ฐ€๋˜๊ณ , ๊ทธ๋งŒํผ ํ”„๋ฆฌ ๋ธ”๋ก์˜ ์ตœ์†Œํฌ๊ธฐ๊ฐ€ ์ปค์ง„๋‹ค๋Š” ์ , (2) coalesced block์„ free list์˜ ๋งจ ์•ž์— ์‚ฝ์ž…ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค(LIFO ์ˆœ์„œ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ทจํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ) 2. Implicit Free Lists vs Explicit Free Lists ์•”์‹œ์  ํ”„๋ฆฌ ๋ฆฌ์ŠคํŠธ๋Š” ๊ตฌํ˜„์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜์ง€๋งŒ, ๋ธ”๋ก ํ• ๋‹น ์‹œ๊ฐ„์ด ํž™ ๋ธ”๋ก์˜ ์ด ์ˆ˜์— ์„ ํ˜•์ ์œผ๋กœ ๋น„๋ก€ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ผ๋ฐ˜์ ์ธ ๋ชฉ์ ์˜ ํ• ๋‹น์ž์— ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (..

[CS:APP] ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ Implicit Free Lists ๋ฌต์‹œ์  ๊ฐ€์šฉ ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„

* ๋ณธ ํฌ์ŠคํŒ…์€ ์ฑ… ์˜ ๋ง๋ก๋žฉ ๊ตฌํ˜„ ์‹ค์Šต์„ ์œ„ํ•ด ์ฑ…์„ ์š”์•ฝํ•˜๊ณ , ๋”์šธ์–ด์„œ ์ฝ”๋“œ์—์„œ ๋น„๋กฏ๋˜๋Š” ์˜๋ฌธ์ ๋“ค์„ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 1. ๊ฐ€์šฉ ๋ฆฌ์ŠคํŠธ ์กฐ์ž‘์„ ์œ„ํ•œ ๊ธฐ๋ณธ ์ƒ์ˆ˜ ๋ฐ ๋งคํฌ๋กœ ์ •์˜ ๊ฐ€์šฉ๋ฆฌ์ŠคํŠธ์—์„œ ํ—ค๋”์™€ ํ‘ธํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋งŽ์€ ์–‘์˜ ์บ์ŠคํŒ…๊ณผ ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ€์šฉ ๋ฆฌ์ŠคํŠธ์— ์ ‘๊ทผํ•˜๊ณ  ๋ฐฉ๋ฌธํ•˜๋Š” ์ž‘์€ ๋งคํฌ๋กœ๋“ค์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. /* Basic constants and macros */ #define WSIZE 4 /* Word and header/footer size (bytes) */ #define DSIZE 8 /* Double word size (bytes) */ #define CHUNKSIZE (1

[CS:APP] ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ 9.9 ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

9.9.6 Implicit Free Lists ์‹ค์ œ ํ• ๋‹น๊ธฐ๋Š” ๋ธ”๋ก ๊ฒฝ๊ณ„๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ณ  ํ• ๋‹น๋œ ๋ธ”๋ก๊ณผ ๋นˆ ๋ธ”๋ก์„ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ• ๋‹น๊ธฐ๋Š” ์ด ์ •๋ณด๋ฅผ ๋ธ”๋ก ์ž์ฒด์— ๋‚ด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ธ”๋ก์€ ํ•œ ์›Œ๋“œ ํ—ค๋”, ํŽ˜์ด๋กœ๋“œ ๋ฐ ์ถ”๊ฐ€ ํŒจ๋”ฉ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. Figure 9.35์—์„œ๋Š” ํ• ๋‹น ๋ธ”๋ก๊ณผ ๋น„ํ• ๋‹น ๋ธ”๋ก์„ ์‹๋ณ„ํ•˜๋Š” ํ—ค๋”๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ํ—ค๋”์—๋Š” ๋ธ”๋ก์˜ ํฌ๊ธฐ์™€ ํ• ๋‹น ๋น„ํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ• ๋‹น ๋น„ํŠธ๋Š” ๋ธ”๋ก์ด ํ• ๋‹น๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Figure 9.36์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์ด ์—ฐ์†๋œ ํ• ๋‹น ๋ฐ ๋น„ํ• ๋‹น ๋ธ”๋ก ์‹œํ€€์Šค๋กœ ๊ตฌ์„ฑ๋œ ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋น„ํ• ๋‹น ๋ธ”๋ก์€ ํ—ค๋”์˜ ํฌ๊ธฐ ํ•„๋“œ์— ์˜ํ•ด ์•”๋ฌต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์•”์‹œ์  ๋น„ํ• ๋‹น ๋ธ”๋ก ๋ชฉ๋ก์˜ ์žฅ์ ์€ ๊ฐ„๋‹จํ•จ์ž…๋‹ˆ๋‹ค. ๋‹จ์ ์€ ํ• ๋‹น ๋ธ”๋ก์„ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ..

Sentinel node๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ๋ ˆ๋“œ๋ธ”๋ž™ ํŠธ๋ฆฌ(2) - ์‚ญ์ œ๋กœ์ง

1. ๋ ˆ๋“œ๋ธ”๋ž™ํŠธ๋ฆฌ ์‚ญ์ œ๋กœ์ง ์‚ดํŽด๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š”! FlyDuck Dev๐Ÿฆข์ž…๋‹ˆ๋‹ค. ์ง€๋‚œ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ ๋ ˆ๋“œ๋ธ”๋ž™ํŠธ๋ฆฌ ์‚ญ์ œ๋กœ์ง์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์˜์ƒ: https://youtu.be/lU99loSvD8s 2. ์‚ญ์ œ๋กœ์ง ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ์—์„œ ์‚ญ์ œ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•  ๋•Œ ํฌ๊ฒŒ ๊ณ ๋ คํ•  ์„ธ๊ฐ€์ง€ ์ผ€์ด์Šค๋Š” -1- ์™ผ์ชฝ ์ฐจ์ผ๋“œ๋…ธ๋“œ๊ฐ€ NIL์ผ๋•Œ, -2- ์˜ค๋ฅธ์ชฝ ์ฐจ์ผ๋“œ๋…ธ๋“œ๊ฐ€ NIL์ผ๋•Œ, -3- ์–‘์ชฝ ์ฐจ์ผ๋“œ๋…ธ๋“œ๊ฐ€ ๋ชจ๋‘ NIL์ด ์•„๋‹ ๋•Œ, ์ž…๋‹ˆ๋‹ค. -1- ์™ผ์ชฝ ์ฐจ์ผ๋“œ๋…ธ๋“œ๊ฐ€ NIL -2- ์˜ค๋ฅธ์ชฝ ์ฐจ์ผ๋“œ๋…ธ๋“œ๊ฐ€ NIL -3- ์–‘์ชฝ ์ฐจ์ผ๋“œ๋…ธ๋“œ๊ฐ€ ๋ชจ๋‘ NIL์ด ์•„๋‹˜ (1) rbtree_erase ์ˆ˜๋„์ฝ”๋“œ์™€ c์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. int rbtree_erase(rbtree *t, node_t *z) { node_t *y = z; co..

Sentinel node๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ๋ ˆ๋“œ๋ธ”๋ž™ ํŠธ๋ฆฌ(1) - ์‚ฝ์ž…๋กœ์ง

1. ๋ ˆ๋“œ๋ธ”๋ž™ํŠธ๋ฆฌ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š”! FlyDuck Dev๐Ÿฆข์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋ ˆ๋“œ๋ธ”๋ž™ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์‚ฝ์ž… ๋กœ์ง์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ(Red-Black Tree)๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree)์˜ ์ผ์ข…์œผ๋กœ, ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ์˜ ์—ฐ์‚ฐ์—์„œ ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ ์‹œ๊ฐ„ ๋ณต์žก๋„ O(log n)์„ ๋ณด์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋…ธ๋“œ๋งˆ๋‹ค "๋ ˆ๋“œ(red)" ๋˜๋Š” "๋ธ”๋ž™(black)"์˜ ์ƒ‰์„ ์ง€์ •ํ•˜๊ณ , ์ƒ‰์˜ ๊ทœ์น™์— ๋”ฐ๋ผ ๋…ธ๋“œ์˜ ์œ„์น˜์™€ ์ƒ‰์„ ์กฐ์ •ํ•จ์œผ๋กœ์จ ํŠธ๋ฆฌ์˜ ๊ท ํ˜•์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ์˜ ์†์„ฑ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ๋ ˆ๋“œ ๋˜๋Š” ๋ธ”๋ž™ ์ค‘ ํ•˜๋‚˜์˜ ์ƒ‰์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋Š” ๋ธ”๋ž™์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฆฌํ”„ ๋…ธ๋“œ(NIL ๋˜๋Š” NULL)๋Š” ๋ธ”๋ž™์ž…๋‹ˆ๋‹ค. ๋ ˆ๋“œ ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ๋“ค์€ ๋ชจ๋‘ ๋ธ”๋ž™์ž…๋‹ˆ..

[TIL] ๋น„ํŠธ์—ฐ์‚ฐ์ž, ๋น„ํŠธ๋งˆ์Šคํ‚น, ์™ธํŒ์› ์ˆœํšŒ

0. Today I Learned ์•ˆ๋…•ํ•˜์„ธ์š”! FlyDuck Dev๐Ÿฆข์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋น„ํŠธ๋งˆ์Šคํ‚น์„ ํ™œ์šฉํ•ด์•ผ ํ•˜๋Š” DP ๋ฌธ์ œ(์™ธํŒ์› ์ˆœํšŒ)๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ, ๋น„ํŠธ์—ฐ์‚ฐ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. TIL ๋ชฉ์ ์ƒ, ๋ฌธ์–ด์ฒด๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋จ์„ ๋ฏธ๋ฆฌ ๋ฐํž™๋‹ˆ๋‹ค! ๐Ÿ”ญ์˜ค๋Š˜์˜ ๊ณต๋ถ€ ์ž๋ฃŒ (1) ํฐ๋Œ์˜ํ„ฐ์ „๋‹˜์˜ ๋ธ”๋กœ๊ทธ ๋ฐ ๊ฐ•์ขŒ (2) ์ฃผ๋‹ˆ์˜จ ์—ฐ๊ตฌ์†Œ๋‹˜์˜ ๊ฐ•์ขŒ 1. ๋น„ํŠธ ์—ฐ์‚ฐ์ž & ๋น„ํŠธ๋‹จ์œ„๋กœ AND ์—ฐ์‚ฐ์„ ํ•œ๋‹ค. | ๋น„ํŠธ๋‹จ์œ„๋กœ OR ์—ฐ์‚ฐ์„ ํ•œ๋‹ค. ^ ๋น„ํŠธ๋‹จ์œ„๋กœ XOR ์—ฐ์‚ฐ์„ ํ•œ๋‹ค. ~ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ๋ฐ˜์ „์‹œํ‚จ๋‹ค. ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋น„ํŠธ ์—ด์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚จ๋‹ค. ๋น„ํŠธ์—ฐ์‚ฐ์ž ๊ธฐ์ดˆ &, | &๋Š” true & true = true (1 & 1 = 1)๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 0 & 0 0 0 & 1 0 1 & 0..

Today I Learned (TIL) 2023. 3. 31. 02:10
[TIL] ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๋ ˆ์ง€์Šคํ„ฐ ๊ธฐ์ดˆ ์‹ค์Šต, ํ”„๋กœ๊ทธ๋ž˜๋จธ์šฉ ๊ณ„์‚ฐ๊ธฐ ๋‹ค๋ค„๋ณด๊ธฐ

0. Today I Learned ์•ˆ๋…•ํ•˜์„ธ์š”! FlyDuck Dev๐Ÿฆข์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ „์‚ฐํ•™์˜ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ ๊ณต๋ถ€๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ, SASM์„ ํ†ตํ•ด์„œ ๊ธฐ์ดˆ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด๋ฅผ ์ž‘์„ฑํ•ด์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์šฉ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๋†€๋ฉด์„œ ์ปดํ“จํ„ฐ์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ดํ•ดํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. TIL ๋ชฉ์ ์ƒ, ๋ฌธ์–ด์ฒด๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋จ์„ ๋ฏธ๋ฆฌ ๋ฐํž™๋‹ˆ๋‹ค! ๐Ÿ”ญ์˜ค๋Š˜์˜ ๊ณต๋ถ€ ์ž๋ฃŒ (1) Rookiss๋‹˜์˜ c++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ ๊ฐ•์ขŒ (2) [CS:APP] ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ 1์žฅ, 3์žฅ 1. ์ปดํ“จํ„ฐ ์ƒ์‹ (๋ ˆ์ง€์Šคํ„ฐ) ์ปดํ“จํ„ฐ๊ฐ€ ๊บผ์ง€๋ฉด ํ•˜๋“œ๋””์Šคํฌ์— ์žˆ๋Š” ๋‚ด์šฉ์€ ๋น„๊ต์  ์˜๊ตฌ์ ์œผ๋กœ ๋ณด์กด์ด ๋˜์ง€๋งŒ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ์€ ๋ณด์กด์ด ๋˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ ํœ˜๋ฐœ์„ฑ์ด๋‹ค. cpu์— ๊ฐ€๊นŒ์šฐ๋ฉด ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์ ‘๊ทผ ์†๋„๋„ ์›”๋“ฑํ•˜๊ฒŒ ๋นจ๋ผ์ง„๋‹ค.(๋ ˆ..

Today I Learned (TIL) 2023. 3. 29. 02:06
[CS:APP] ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ 3์žฅ(1) : ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๊ธฐ์ดˆ์™€ gcc, gnu, gdb

0. Hello๐Ÿ‘‹ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์•ˆ๋…•ํ•˜์„ธ์š”! FlyDuck Dev๐Ÿฆข์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ CS:APP 3์žฅ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๊ณ„์ˆ˜์ค€ ํ‘œํ˜„์— ๋‚˜์˜จ ์šฉ์–ด๋“ค(gcc, gnu, gdb)๊ณผ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ฐพ์•„๋ณธ ๋ฐ”๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋Š” ์‹์œผ๋กœ ํฌ์ŠคํŒ…์„ ์ง„ํ–‰ํ•ด๋ณด๊ณ ์žํ•ฉ๋‹ˆ๋‹ค.๐Ÿ˜Š ํŠนํžˆ ์•„๋ž˜์˜ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์ดํ•ดํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ๋ณธ ํฌ์ŠคํŒ…์„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. gcc gcc๋Š” GNU Compiler Collection์˜ ์•ฝ์ž๋กœ, C, C++, Objective-C, Fortran, Ada ๋“ฑ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์ž…๋‹ˆ๋‹ค. gcc๋Š” ์˜คํ”ˆ ์†Œ์Šค์ด๋ฉฐ, ๋ฆฌ๋ˆ…์Šค์™€ ๊ฐ™์€ ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜ ์šด์˜ ์ฒด์ œ์—์„œ ํ”ํžˆ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. gcc๋Š” ํ‘œ์ค€ C ๋ฐ C++ ๊ทœ๊ฒฉ์„ ์ค€์ˆ˜ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”..