๐Ÿ–ฅ Computer Science

๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ๋งŽ์•„ ์ฝ”๋“œ๊ฐ€ ๊ทธ๋ฆฌ ๊น”๋”ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.. ใ…  (์‹œํ”„ ๋‹ค๋“ค ํ™”์ดํŒ…ํ•˜์„ธ์š”๐Ÿ˜Š) ๐Ÿง addOK /* * addOK - Determine if can compute x+y without overflow * Example: addOK(0x80000000,0x80000000) = 0, * addOK(0x80000000,0x70000000) = 1, * Legal ops: ! ~ & ^ | + > * Max ops: 20 * Rating: 3 */ int addOK(int x, int y) { /* * Overflow๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. * (1) MSB_X = 0, MSB_Y = 0, MSB_(X+Y) = 1 * (2) MSB_X = 1, MSB_Y = 1, MSB_(X+Y) = 0 * *..
๐Ÿง ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ์ž๋ฃŒ๊ตฌ์กฐ ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ์ž๋ฃŒ๊ตฌ์กฐ(๋˜๋Š” ์„œ๋กœ์†Œ ์ง‘ํ•ฉ(disjoint set) ์ž๋ฃŒ๊ตฌ์กฐ)๋Š” ๋‹ค์Œ ๋‘ ์ข…๋ฅ˜์˜ ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. Union : ๋‘ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ํฌํ•จ๋œ ์ง‘ํ•ฉ์„ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ•ฉ์น˜๋Š” ์—ฐ์‚ฐ Find : ํŠน์ • ๋…ธ๋“œ๊ฐ€ ์†ํ•œ ์ง‘ํ•ฉ์˜ ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ ์šฐ์„  ๋™๋นˆ๋‚˜๋‹˜์˜ ์„ค๋ช…์ด ๊ต‰์žฅํžˆ ์ข‹๊ธฐ ๋•Œ๋ฌธ์—, ๋™๋นˆ๋‚˜๋‹˜์˜ ์œ ํŠœ๋ธŒ ๋งํฌ๋ฅผ ๊ฑธ์–ด๋‘๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ( ์ €๋Š” ๊ทธ๋ƒฅ ์ œ๊ฐ€ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ๊ธ€ ์“ด ๊ฑฐ๋‹ˆ๊นŒ, ์œ ํŠœ๋ธŒ ๋ณด๋Ÿฌ ๊ฐ€์„ธ์—ฌ..ใ… ใ…  ) โญ๏ธ Find ์—ฐ์‚ฐ Find ์—ฐ์‚ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1. ํ•ด๋‹น ๋…ธ๋“œ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋‘ ๋…ธ๋“œ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ, ํ•ด๋‹น ๋…ธ๋“œ๋Š” ๋ฃจํŠธ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. 2. ๋งŒ์•ฝ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด ํ•ด๋‹น ๋…ธ๋“œ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ์— ๋Œ€..
์ปดํ“จํ„ฐ์—์„œ๋Š” ์†Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ถ€๋™์†Œ์ˆ˜์  ํ‘œํ˜„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋™์†Œ์ˆ˜์  ํ‘œํ˜„์€ $V = x \times 2^{y}$ ํ˜•ํƒœ์˜ ์†Œ์ˆ˜๋ฅผ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ๋Š” IEEE ๋ถ€๋™์†Œ์ˆ˜์  ํ‘œ์ค€ ์˜ ๋ฐฉ์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ์–ด๋–ป๊ฒŒ IEEE ๋ถ€๋™์†Œ์ˆ˜์  ํ˜•์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š”์ง€์™€, ์ˆซ์ž๋ฅผ ํ•ด๋‹น ํ˜•ํƒœ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์—†์„ ๋•Œ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋Š” ๊ทผ์‚ฌ(rounding)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿง ๋น„์œจ ์ด์ง„์ˆ˜ ๋ถ€๋™์†Œ์ˆ˜์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „, ๋น„์œจ ์ด์ง„์ˆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋น„์œจ ์ด์ง„์ˆ˜์˜ ํ‘œ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. $$b_m \;b_{m-1}\; ... b_2\; b_1\; b_0\; .\; b_{-1} \;b_{-2}\; ... \;b_{-n+1}\; b_{-n}$$ ์ด์ง„ ์†Œ์ˆ˜์  ์ขŒ์ธก์˜ ์ˆซ..
๐Ÿง ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋ช…๋ น์–ด ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜๋กœ๋Š” Shift ์—ฐ์‚ฐ๊ณผ, ๋น„ํŠธ๋ณ„ AND, OR, XOR, NOT ์˜ ์—ฐ์‚ฐ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋ช…๋ น์–ด๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿง Shift ์—ฐ์‚ฐ Shift ๋ช…๋ น์–ด๋Š” ์›Œ๋“œ ๋‚ด์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ค๊ณ , ์ด๋™ ํ›„ ๋นˆ์ž๋ฆฌ๋Š” 0์œผ๋กœ ์ฑ„์šฐ๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ x19 ๋ ˆ์ง€์Šคํ„ฐ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด $00000000 \;\;00000000 \;\;00000000 \;\;0000$$1001_2 \;\;$$ = 9_{10} $ ์™ผ์ชฝ์œผ๋กœ 4๋ฒˆ Shift ์‹œํ‚ค๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์•„์ง‘๋‹ˆ๋‹ค. $00000000 \;\; 00000000 \;\; 00000000 \;\; $$1001$$0000_2 \;\..
๐Ÿง ๋ช…๋ น์–ด ํ˜•์‹ (Instruction Format) ๋ช…๋ น์–ด๋Š” ๋ช…๋ น ์ฝ”๋“œ์™€ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋ช…๋ น์–ด๋“ค์€ ์ด์ง„์ˆ˜๋กœ ์ธ์ฝ”๋”ฉ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ช…๋ น์–ด์˜ ๊ฐ ๋ถ€๋ถ„์„ ์ˆซ์ž๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ฎ‍๐Ÿ’จ ์˜ˆ์ œ ์•„๋ž˜ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ช…๋ น์–ด์˜ RISC-V ์–ธ์–ด ๋ฒ„์ „์„ ์‹ญ์ง„์ˆ˜์™€ ์ด์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. add x9, x20, x21 ์‹ญ์ง„์ˆ˜ ํ‘œํ˜„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 0 21 20 0 9 51 ๋ช…๋ น์–ด์˜ ๊ฐ ๋ถ€๋ถ„์„ ํ•„๋“œ(Field)๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์œ„์—์„œ ์ฒซ ๋ฒˆ์งธ, ๋„ค ๋ฒˆ์งธ, ์—ฌ์„ฏ ๋ฒˆ์งธ ํ•„๋“œ(0, 0, 51 ๋ถ€๋ถ„)๋Š” RISC-V ์ปดํ“จํ„ฐ์—๊ฒŒ ์ด ๋ช…๋ น์–ด๋Š” ๋ง์…ˆ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ํ•„๋“œ๋Š” ๋ง์…ˆ์— ์‚ฌ์šฉํ•  ๋‘ ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋ฒˆํ˜ธ( 21 = x21 ..
๐Ÿง ํ”ผ์—ฐ์‚ฐ์ž (Operands) ์‚ฐ์ˆ  ๋ช…๋ น์–ด์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๋Š” ์ œ์•ฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ(register)์˜ ์ฃผ์†Œ ํ˜น์€ ์ƒ์ˆ˜๋งŒ์ด ํ•ด๋‹น ์œ„์น˜์— ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RISC-V ์ปดํ“จํ„ฐ๋Š” 32๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋Š” 64๋น„ํŠธ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (32๋น„ํŠธ ์ปดํ“จํ„ฐ์˜ ๊ฒฝ์šฐ ๋ ˆ์ง€์Šคํ„ฐ๋Š” 32๋น„ํŠธ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) ๊ฐ๊ฐ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋Š” x0 ๋ถ€ํ„ฐ x31 ๊นŒ์ง€์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์›Œ๋“œ(Word)๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๋Š”๋ฐ, ์›Œ๋“œ๋Š” ์ปดํ“จํ„ฐ์—์„œ์˜ ์ ‘๊ทผ ๋‹จ์œ„์ด๋ฉฐ, ๋ ˆ์ง€์Šคํ„ฐ์˜ ํฌ๊ธฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณธ๋ž˜์˜ ์˜๋ฏธ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์ผ๋ฐ˜์ ์œผ๋กœ Word๋ผ๊ณ  ํ•˜๋ฉด 32๋น„ํŠธ๋ฅผ ๋– ์˜ฌ๋ฆฌ๋ฉฐ, 64๋น„ํŠธ ์ปดํ“จํ„ฐ์—์„œ๋Š” Word๊ฐ€ 64๋น„ํŠธ์ด์ง€๋งŒ Word๋Š” 32๋น„ํŠธ๋ผ๋Š” ์ธ์‹์ด ๊ฐ•ํ•˜๋ฏ€๋กœ, 64๋น„ํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด Double ..
๐Ÿง ๋ช…๋ น์–ด ์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด์—๊ฒŒ ์ผ์„ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š”, ํ•˜๋“œ์›จ์–ด๊ฐ€ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ช…๋ น์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ ์–ธ์–ด์—์„œ์˜ ๋‹จ์–ด๋ฅผ ๋ช…๋ น์–ด(Instruction)๋ผ ์นญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋– ํ•œ CPU๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฒƒ์„ ๋ช…๋ น์–ด ์ง‘ํ•ฉ(Instruction set)์ด๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ISA๊ฐ€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋“ค์€, ๋ชจ๋‘ ๋‹ค๋ฅธ ๋ช…๋ น์–ด ์ง‘ํ•ฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋‘ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ์—, ํ•˜๋‚˜๋ฅผ ๋ฐฐ์šฐ๋ฉด ๋‹ค๋ฅธ ๊ฒƒ๋“ค๋„ ์‰ฝ๊ฒŒ ์ต์ˆ™ํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” ๋ชจ๋“  ๋ช…๋ น์–ด ์ง‘ํ•ฉ์€ RISC-V ์ž…๋‹ˆ๋‹ค. โœ๏ธ ์ฐธ๊ณ  : CISC์™€ RISC CISC : Complex Instruction Set Computer RISC : Reduced Instruction Set Computer CISC..
๐Ÿง Strongly Connected ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ๋Š” ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์™€ ๋™์ผํ•˜๊ฒŒ Connectivity(์—ฐ๊ฒฐ์„ฑ)๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ์˜ Connectivity๋Š” ๋ณดํ†ต Strongly Connected ๋กœ ์ •์˜๋˜๋ฉฐ, ํ•ด๋‹น ์ •์˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. $G$ ๋Š” Strongly Connected ํ•˜๋‹ค : ์ž„์˜์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์ •์  $v$, $u$ $\in V(G)$ ์— ๋Œ€ํ•˜์—ฌ, $v$ ์—์„œ $w$ ๋กœ์˜ Path์™€, $w$ ์—์„œ $v$ ๋กœ์˜ Path๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๐Ÿง Strongly Connected Components (๊ฐ•ํ•œ ์—ฐ๊ฒฐ ์š”์†Œ) ๊ทธ๋ž˜ํ”„ $G$์— ๋Œ€ํ•œ Strong Connected Component $G'$ : $G$ ์˜ Maximal Strongly Connected Subgraph $..
๋ง ๋ž‘
'๐Ÿ–ฅ Computer Science' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (7 Page)