๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ/CS50 ์ฝ”์นญ์Šคํ„ฐ๋””7

[CS50 ์ฝ”์นญ์Šคํ„ฐ๋””] 6์ฃผ์ฐจ_์ž๋ฃŒ๊ตฌ์กฐ [6์ฃผ์ฐจ ๊ฐœ๋…] โœ”๏ธ malloc๊ณผ ํฌ์ธํ„ฐ ๋ณต์Šต - ํฌ์ธํ„ฐ, malloc โœ”๏ธ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ ์กฐ์ •ํ•˜๊ธฐ - malloc, realloc ์ƒˆ๋กœ์šด ๊ณต๊ฐ„์— ํฐ ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค์‹œ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€ : malloc, realloc โœ”๏ธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ: ๋„์ž… ๋ฐฐ์—ด : ๊ฐ ์ธ๋ฑ์Šค์˜ ๊ฐ’์ด ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์—ฐ์ด์–ด ์ €์žฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ : ๊ฐ ๊ฐ’์ด ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์—ฌ๋Ÿฌ ๊ตฐ๋ฐ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๋ฐ”๋กœ ๋‹ค์Œ ๊ฐ’์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋งŒ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์—ฌ์ „ํžˆ ๊ฐ’์„ ์—ฐ์ด์–ด์„œ ์ฝ์–ด๋“ค์ผ ์ˆ˜ ์žˆ์Œ. ๊ฐ ์ธ๋ฑ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์—์„œ ์ž์‹ ์˜ ๊ฐ’๊ณผ ํ•จ๊ป˜ ๋ฐ”๋กœ ๋‹ค์Œ ๊ฐ’์˜ ์ฃผ์†Œ(ํฌ์ธํ„ฐ)๋ฅผ ์ €์žฅ โœ”๏ธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ: ์ฝ”๋”ฉ โœ”๏ธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ: ์‹œ์—ฐ - ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ๋ฐฐ์—ด ์žฅ์  : ์ƒˆ๋กœ์šด ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š์•„๋„ ๋จ ๋‹จ์  : ์ž„์˜ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅ.. 2021. 3. 2.
[CS50 ์ฝ”์นญ์Šคํ„ฐ๋””] 5์ฃผ์ฐจ_๋ฉ”๋ชจ๋ฆฌ [5์ฃผ์ฐจ ๊ฐœ๋…] โœ”๏ธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ - 16์ง„๋ฒ•, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ 16์ง„๋ฒ• : 2๊ฐœ์˜ 16์ง„์ˆ˜๋Š” 1byte์˜ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ๋งค์šฐ ์œ ์šฉ, 2์ง„์ˆ˜๋ณด๋‹ค ๊ฐ„ํŽธํ•˜๋ฉด์„œ ์ปดํ“จํ„ฐ๋Š” 10์ง„์ˆ˜๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— 16์ง„์ˆ˜๊ฐ€ ์œ ์šฉ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ : int ํƒ€์ž…์€ ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋”˜๊ฐ€์— 4๋ฐ”์ดํŠธ ๋งŒํผ์˜ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ -> C์—์„œ๋Š” ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ์ƒ ์ฃผ์†Œ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ‘&’์ด๋ผ๋Š” ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ (printf("%p\n", &n);) -> ‘*’๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์žˆ๋Š” ์‹ค์ œ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Œ (printf("%i\n", *&n);) โœ”๏ธ ํฌ์ธํ„ฐ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ : *p๋ผ๋Š” ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ์ฆ‰ ๋ณ€์ˆ˜ n์˜ ์ฃผ์†Œ(&n)๋ฅผ ์ €์žฅ (int n = 50; int *p = &n;) -> p๊ฐ€ n์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค.. 2021. 3. 1.
[CS50 ์ฝ”์นญ์Šคํ„ฐ๋””] 4์ฃผ์ฐจ_์•Œ๊ณ ๋ฆฌ์ฆ˜ [4์ฃผ์ฐจ ๊ฐœ๋…] โœ”๏ธ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์„ ํ˜• ๊ฒ€์ƒ‰, ์ด์ง„ ๊ฒ€์ƒ‰ ์„ ํ˜• ๊ฒ€์ƒ‰ : ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ๋ฐฉ๋ฌธํ•˜์—ฌ ๊ทธ ๊ฐ’์ด ์†ํ•˜๋Š”์ง€๋ฅผ ๊ฒ€์‚ฌ์ด์ง„ ๊ฒ€์ƒ‰ : ๋งŒ์•ฝ ๋ฐฐ์—ด์ด ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด, ๋ฐฐ์—ด ์ค‘๊ฐ„ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’๊ณผ ๋น„๊ตํ•˜๋ฉฐ ๊ทธ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ธ๋ฑ์Šค ๋˜๋Š” ํฐ ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ธ๋ฑ์Šค๋กœ ์ด๋™์„ ๋ฐ˜๋ณต โœ”๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‘œ๊ธฐ๋ฒ• - Big O, Big Ω Big O : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ƒํ•œ Big Ω : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ํ•˜ํ•œ -> ์‹คํ–‰์‹œ๊ฐ„์˜ ์ƒํ•œ์ด ๋‚ฎ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ข‹๋‹ค โœ”๏ธ ์„ ํ–‰ ๊ฒ€์ƒ‰ - ์„ ํ˜• ๊ฒ€์ƒ‰, ๊ตฌ์กฐ์ฒด ์„ ํ˜• ๊ฒ€์ƒ‰ : ์›ํ•˜๋Š” ์›์†Œ๊ฐ€ ๋ฐœ๊ฒฌ๋  ๋•Œ๊นŒ์ง€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ๊ฒ€์ƒ‰ -> ์ •ํ™•ํ•˜์ง€๋งŒ ์•„์ฃผ ํšจ์œจ์ ์ด์ง€ ๋ชปํ•œ ๋ฐฉ๋ฒ• -> ์ž๋ฃŒ๊ฐ€ ์ •๋ ฌ๋˜์–ด.. 2021. 2. 28.
[CS50 ์ฝ”์นญ์Šคํ„ฐ๋””] 3์ฃผ์ฐจ_๋ฐฐ์—ด [3์ฃผ์ฐจ ๊ฐœ๋…] โœ”๏ธ ์ปดํŒŒ์ผ๋ง - ์ปดํŒŒ์ผ๋ง, ์–ด์…ˆ๋ธ”๋ง, ๋งํ‚น ์ „์ฒ˜๋ฆฌ -> ์ปดํŒŒ์ผ๋ง -> ์–ด์…ˆ๋ธ”๋ง -> ๋งํ‚น ์ „์ฒ˜๋ฆฌ : ์‹ค์งˆ์ ์ธ ์ปดํŒŒ์ผ์ด ์ด๋ฃจ์–ด์ง€๊ธฐ ์ „์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹คํ–‰ ์ปดํŒŒ์ผ๋ง : C์ฝ”๋“œ๋ฅผ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ผ๋Š” ์ €์ˆ˜์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ปดํŒŒ์ผ ์–ด์…ˆ๋ธ”๋ง : ์–ด์…ˆ๋ธ” ๋‹จ๊ณ„๋กœ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋ฅผ ์˜ค๋ธŒ์ ํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜(=์—ฐ์†๋œ 0๊ณผ 1๋“ค๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์ž‘์—…) ๋งํ‚น : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์–ด ํ•˜๋‚˜์˜ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ๋กœ ํ•ฉ์นจ โœ”๏ธ ๋””๋ฒ„๊น… - ๋””๋ฒ„๊น…, help50, debug50 ๋ฒ„๊ทธ : ์ฝ”๋“œ์— ๋“ค์–ด์žˆ๋Š” ์˜ค๋ฅ˜ ๋””๋ฒ„๊น… : ์ฝ”๋“œ์— ์žˆ๋Š” ๋ฒ„๊ทธ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๊ณ ์น˜๋Š” ๊ณผ์ • โœ”๏ธ ์ฝ”๋“œ์˜ ๋””์ž์ธ - check50, style50, ๊ณ ๋ฌด ์˜ค๋ฆฌ check50 : ์ž๋™ ๊ฒ€์‚ฌ ํ”„๋กœ๊ทธ๋žจ style50 : ์ฝ”๋“œ๊ฐ€ ์‹ฌ๋ฏธ์ ์œผ๋กœ ์ž˜ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ โœ”๏ธ .. 2021. 2. 27.
[CS50 ์ฝ”์นญ์Šคํ„ฐ๋””] 2์ฃผ์ฐจ_C์–ธ์–ด [2์ฃผ์ฐจ ๊ฐœ๋…] โœ”๏ธ C ๊ธฐ์ดˆ - stdio.h, clang, ์ปดํŒŒ์ผ๋Ÿฌ clang hello.c ๋ผ๋Š” ๋ช…๋ น์–ด๋Š” “clang” ์ด๋ผ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๋กœ “hello.c”๋ผ๋Š” ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ -> a.out ์ด๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ์„ฑ โœ”๏ธ ๋ฌธ์ž์—ด - ํ˜•์‹์ง€์ •์ž, string, make โœ”๏ธ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฃจํ”„ - int, if, while, for = : ํ• ๋‹น ์—ฐ์‚ฐ์ž == : ๋น„๊ต(๋™๋“ฑ) ์—ฐ์‚ฐ์ž โœ”๏ธ ์ž๋ฃŒํ˜•, ํ˜•์‹ ์ง€์ •์ž, ์—ฐ์‚ฐ์ž - char, long, float, double, %, &&, || %c : char %f : float, double %i : int %li : long %s : string โœ”๏ธ ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜, ์ค‘์ฒฉ ๋ฃจํ”„ int get_positive_int(void) : ์ถœ๋ ฅ์˜ ์ข…๋ฅ˜(์–ด๋–ค ๊ฐ’์„ ๋ฐ›์•„์™€์„œ ๋ณ€์ˆ˜.. 2021. 2. 25.
[CS50 ์ฝ”์นญ์Šคํ„ฐ๋””] 1์ฃผ์ฐจ_์ปดํ“จํŒ… ์‚ฌ๊ณ  [1์ฃผ์ฐจ ๊ฐœ๋…] โœ”๏ธ 2์ง„๋ฒ• - ์ปดํ“จํ„ฐ ๊ณผํ•™, 2์ง„๋ฒ•, ๋น„ํŠธ, ๋ฐ”์ดํŠธ ์ปดํ“จํ„ฐ ๊ณผํ•™ : ์ž…๋ ฅ(input)์„ ์ „๋‹ฌ๋ฐ›์•„ ์ถœ๋ ฅ(output)์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ณผ์ • ์‚ฌ์ด์— ์กด์žฌ 2์ง„๋ฒ• : ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•, 0๊ณผ 1๋งŒ ์กด์žฌ ๋น„ํŠธ : 0๊ณผ 1, ๋‘ ๊ฐ€์ง€ ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ธก์ • ๋‹จ์œ„ ๋ฐ”์ดํŠธ : 8๊ฐœ์˜ ๋น„ํŠธ๊ฐ€ ๋ชจ์—ฌ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ ๋น„ํŠธ < ๋ฐ”์ดํŠธ < ํ‚ฌ๋กœ๋ฐ”์ดํŠธ < ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ < ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ < ํ…Œ๋ผ๋ฐ”์ดํŠธ โœ”๏ธ ์ •๋ณด์˜ ํ‘œํ˜„ - ASCII, ์œ ๋‹ˆ์ฝ”๋“œ, RGB ASCII : 128๊ฐœ์˜ ๋ถ€ํ˜ธ๋กœ ์ •์˜ ์œ ๋‹ˆ์ฝ”๋“œ : ASCII๋ณด๋‹ค ๋” ๋งŽ์€ ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋” ๋‹ค์–‘ํ•œ ๋‹ค๋ฅธ ๋ฌธ์ž๋“ค๋„ ํ‘œํ˜„(์ด๋ชจํ‹ฐ์ฝ˜ ๊ฐ€๋Šฅ) RGB : ๊ทธ๋ฆผ, ์˜์ƒ, ์Œ์•… ํ‘œํ˜„, R(๋นจ๊ฐ„์ƒ‰) G(์ดˆ๋ก์ƒ‰) B(ํŒŒ๋ž€์ƒ‰) โœ”๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์˜์‚ฌ์ฝ”๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ :.. 2021. 2. 25.