전체 κΈ€ 248

[C] Study: 동적 λ©”λͺ¨λ¦¬ - (3) ꡬ쑰체의 동적 생성을 ν•΄λ³΄μž

• ꡬ쑰체λ₯Ό μ €μž₯ν•  수 μžˆλŠ” 곡간도 λ‹€μŒκ³Ό 같이 할당받을 수 μžˆλ‹€. • λ§Œμ•½ ꡬ쑰체의 배열이 ν•„μš”ν•˜λ©΄ ꡬ쑰체의 크기에닀 ν•„μš”ν•œ 개수λ₯Ό κ³±ν•΄μ£Όλ©΄ λœλ‹€. • μ•„λž˜μ˜ ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” 책을 ν‘œν˜„ν•˜λŠ” ꡬ쑰체λ₯Ό μ •μ˜ν•˜κ³  ꡬ쑰체의 배열을 λ™μ μœΌλ‘œ μƒμ„±ν•œλ‹€. struct Book { int number; char title[100]; }; struct Book *p; p = (struct Book *)malloc(2 * sizeof(struct Book)); λ™μ μœΌλ‘œ μƒμ„±λœ ꡬ쑰체 배열은 포인터λ₯Ό ν†΅ν•΄μ„œλ§Œ μ ‘κ·Όν•  수 μžˆλŠ” 점에 μœ μ˜ν•˜μž. p[0]λŠ” 첫 번째 ꡬ쑰체이고 p[1]은 두 번째 ꡬ쑰체이닀. #include #include #include struct Book { int number; char title[100]..

[C] Study: 동적 λ©”λͺ¨λ¦¬ - (2) malloc()κ³Ό free()

(2) malloc()κ³Ό free() • 동적 λ©”λͺ¨λ¦¬ ν• λ‹Ή μ ˆμ°¨μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž. • 동적 λ©”λͺ¨λ¦¬ 할당은 λ„μ„œκ΄€μ—μ„œ 책을 λΉŒλ¦¬λŠ” μ ˆμ°¨μ™€ λΉ„μŠ·ν•˜λ‹€. λ„μ„œκ΄€μ—μ„œλŠ” ν•„μš”ν•œ 책을 μ‹ μ²­ν•˜κ³  책이 μ€€λΉ„λ˜λ©΄ λ°›μ•„μ˜€λŠ” 단계가 ν•„μš”ν•˜λ‹€. μ±…μ˜ μ‚¬μš©μ΄ λλ‚˜λ©΄ 책을 λ‹€μ‹œ λ„μ„œκ΄€μœΌλ‘œ λ°˜λ‚©ν•˜λŠ” 단계가 ν•„μš”ν•˜λ‹€. • 동적 λ©”λͺ¨λ¦¬ 할당도 λ§ˆμ°¬κ°€μ§€μ΄λ‹€. • λ¨Όμ € μ–Όλ§ˆλ‚˜ 할당을 받을 것인지λ₯Ό κ²°μ •ν•˜κ³  라이브러리 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ 운영 μ²΄μ œμ—κ²Œ λ©”λͺ¨λ¦¬λ₯Ό μš”μ²­ν•˜λŠ” 단계가 ν•„μš”ν•˜λ‹€. λ§Œμ•½ μΆ©λΆ„ν•œ λ©”λͺ¨λ¦¬κ°€ μ‘΄μž¬ν•˜λ©΄ κ·Έ μš”μ²­μ€ 승인되고 λ©”λͺ¨λ¦¬κ°€ ν• λ‹Ήλœλ‹€. ν”„λ‘œκ·Έλž¨μ€ ν• λ‹Ήλœ λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•œλ‹€. μ‚¬μš©μ΄ λλ‚˜λ©΄ λ©”λͺ¨λ¦¬λ₯Ό λ‹€μ‹œ μš΄μ˜μ²΄μ œμ—κ²Œ λ°˜λ‚©ν•˜λŠ” 단계가 ν•„μš”ν•˜λ‹€. λ§Œμ•½ λ©”λͺ¨λ¦¬λ₯Ό λ°˜λ‚©ν•˜μ§€ μ•ŠμœΌλ©΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ΄ 동적 λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•  수 μ—†κ²Œ 될 것이닀..

[C] Study: 동적 λ©”λͺ¨λ¦¬ - (1) 동적 ν• λ‹Ή λ©”λͺ¨λ¦¬λž€?

(1) 동적 ν• λ‹Ή λ©”λͺ¨λ¦¬λž€? • ν”„λ‘œκ·Έλž¨μ΄ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήλ°›λŠ” λ°©λ²•μ—λŠ” 정적(static)κ³Ό 동적(dynamic)의 두 가지 방법이 μžˆλ‹€. • 정적 λ©”λͺ¨λ¦¬ ν• λ‹Ή: ν”„λ‘œκ·Έλž¨μ΄ μ‹œμž‘λ˜κΈ° 전에 미리 정해진 크기의 λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ή λ°›λŠ” 것이닀. • 이 경우, λ©”λͺ¨λ¦¬μ˜ ν¬κΈ°λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹œμž‘λ˜κΈ° 전에 κ²°μ •λ˜λ©° ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 도쀑에 κ·Έ 크기가 변경될 μˆ˜λŠ” μ—†λ‹€. • 예λ₯Ό λ“€λ©΄ μ•„λž˜μ™€ 같이 배열을 μ„ μ–Έν•˜λ©΄ μ •μ μœΌλ‘œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήλ°›λŠ” 것이닀. int sarray[10]; • 정적 λ©”λͺ¨λ¦¬ ν• λ‹Ήμ˜ μž₯점: κ°„νŽΈν•˜λ‹€. • 정적 λ©”λͺ¨λ¦¬ ν• λ‹Ήμ˜ 단점: κ²½μš°μ— 따라 λΉ„νš¨μœ¨μ μΌ 수 μžˆλ‹€. • 예λ₯Ό λ“€λ©΄, ν”„λ‘œκ·Έλž¨μ΄ μ²˜λ¦¬ν•΄μ•Ό ν•˜λŠ” μž…λ ₯의 크기λ₯Ό 미리 μ•Œ 수 μ—†λŠ” 경우: λ§Œμ•½ μ²˜μŒμ— κ²°μ •λœ 크기보닀 더 λ§Žμ€ μž…λ ₯이 λ“€μ–΄μ˜¨λ‹€λ©΄ μ²˜λ¦¬ν•˜μ§€ λͺ»ν• ..

[C] Study: λ³€μˆ˜μ™€ μžλ£Œν˜• - (5) λ¬Έμžν˜•

• λ¬ΈμžλŠ” μ»΄ν“¨ν„°μ—μ„œ μ–΄λ–»κ²Œ ν‘œν˜„λ κΉŒ? μ»΄ν“¨ν„°λŠ” λͺ¨λ“  것을 숫자둜 ν‘œν˜„ν•œλ‹€. λ¬Έμžλ„ μ˜ˆμ™ΈλŠ” μ•„λ‹ˆλ‹€. • 예λ₯Ό λ“€λ©΄ 'A'λŠ” 숫자 65둜, 'B'λŠ” 66으둜 ν‘œν˜„ν•œλ‹€, 이것을 문자 μ½”λ“œλΌκ³  ν•œλ‹€. • 널리 μ‚¬μš©ν•˜λŠ” ν‘œμ€€μ μΈ 문자 μ½”λ“œλŠ” μ•„μŠ€ν‚€ μ½”λ“œ(ASCII code)이닀. • μ•„μŠ€ν‚€ μ½”λ“œλŠ” μ˜μ–΄μ˜ λŒ€μ†Œλ¬Έμž, 숫자, κΈ°ν˜Έλ“€μ— λŒ€ν•˜μ—¬ 0μ—μ„œ 127 μ‚¬μ΄μ˜ 값듀을 λΆ€μ—¬ν•œλ‹€. • Cμ–Έμ–΄μ—μ„œλ„ ASCII μ½”λ“œλ₯Ό μ΄μš©ν•˜μ—¬ 문자λ₯Ό ν‘œν˜„ν•˜κ²Œ λœλ‹€. • 영문자의 경우, κΈ€μžλ“€μ˜ κ°œμˆ˜κ°€ 128개 μ΄ν•˜μ΄κΈ° λ•Œλ¬Έμ— ν•˜λ‚˜μ˜ κΈ€μžμ— λŒ€ν•˜μ—¬ λ§Žμ€ λΉ„νŠΈλ₯Ό ν• λ‹Ήν•  ν•„μš”λŠ” μ—†λ‹€, 8λΉ„νŠΈλ©΄ μΆ©λΆ„ν•˜λ‹€. • μ•„μŠ€ν‚€ μ½”λ“œλŠ” 8λΉ„νŠΈμ˜ charν˜• λ³€μˆ˜μ— μ €μž₯될 수 μžˆλ‹€. • μ•„μŠ€ν‚€ μ½”λ“œμ—μ„œ 인쇄 κ°€λŠ₯ν•œ μ½”λ“œλŠ” 슀페이슀 λ¬ΈμžλΆ€ν„° μ‹œμž‘ν•œλ‹€. 슀페이슀..

[C] Study: λ³€μˆ˜μ™€ μžλ£Œν˜• - (4) λΆ€λ™μ†Œμˆ˜μ ν˜•

• μ‹€μˆ˜λŠ” 123.456κ³Ό 같이 μ†Œμˆ˜μ μ„ 가진 μˆ˜μ΄λ‹€. • μ‹€μˆ˜λŠ” 맀우 큰 μˆ˜λ‚˜ 맀우 μž‘μ€ 수λ₯Ό λ‹€λ£¨λŠ” μžμ—° κ³Όν•™μ΄λ‚˜ 곡학 λΆ„μ•Όμ˜ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•  λ•ŒλŠ” μ—†μ–΄μ„œλŠ” μ•ˆ 될 μ€‘μš”ν•œ μš”μ†Œμ΄λ‹€. • Cμ—μ„œλŠ” λΆ€λ™μ†Œμˆ˜μ  λ°©μ‹μœΌλ‘œ μ‹€μˆ˜λ₯Ό ν‘œν˜„ν•œλ‹€. • λΆ€λ™μ†Œμˆ˜μ μ€ μ†Œμˆ˜μ μ˜ μœ„μΉ˜κ°€ 고정돼 μžˆμ§€ μ•ŠμœΌλ©°, κ°€μˆ˜μ™€ μ§€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹€μˆ˜λ₯Ό ν‘œν˜„ν•œλ‹€. • κ°€μˆ˜λŠ” 유효숫자, μ§€μˆ˜λŠ” μ†Œμˆ˜μ μ˜ μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. • Cμ—μ„œλŠ” float, double, long double의 3κ°€μ§€μ˜γ…œλΆ€λ™μ†Œμˆ˜μ  μžλ£Œν˜•μ΄ μžˆλ‹€. PCμ—μ„œλŠ” doubleκ³Ό long double은 κ°™λ‹€. • 주어진 λΉ„νŠΈ μ•ˆμ—μ„œ μ§€μˆ˜μ™€ κ°€μˆ˜λ₯Ό μ–΄λ–»κ²Œ ν‘œν˜„ν•˜λŠλƒμ— λŒ€ν•œ μ—¬λŸ¬κ°€μ§€ 규격이 μžˆλ‹€. C μ–Έμ–΄μ˜ λΆ€λ™μ†Œμˆ˜μ μŒ IEEE 754 κ·œκ²©μ„ μ‚¬μš©ν•œλ‹€(μ˜ˆμ „ C 컴파일러 μ œμ™Έ). 예..

[C] Study: λ³€μˆ˜μ™€ μžλ£Œν˜• - (3) μ •μˆ˜ν˜•

[3] μ •μˆ˜ν˜• • μ •μˆ˜ν˜•μ€ κ°€μž₯ 기본적인 μžλ£Œν˜•μœΌλ‘œ μ •μˆ˜λ₯Ό μ €μž₯ν•  수 μžˆλ‹€. • μ •μˆ˜ν˜•μ—λŠ” λ‹€μŒκ³Ό 같은 μžλ£Œν˜•μ΄ μžˆλ‹€. • μ •μˆ˜ν˜• λ³€μˆ˜λŠ” -∞μ—μ„œ +∞κΉŒμ§€ ν‘œν˜„ν•˜μ§€ λͺ»ν•¨ • λΉ„νŠΈμ˜ 개수 λ•Œλ¬Έμ— ν‘œν˜„ν•˜λŠ” 수의 λ²”μœ„μ— μ œν•œμ΄ μžˆλ‹€. • shortν˜•: 16λΉ„νŠΈλ‘œ μ •μˆ˜ μ €μž₯ • int, longν˜•: 32λΉ„νŠΈ • long longν˜•: 64λΉ„νŠΈ μ°Έκ³ : λΉ„νŠΈμ™€ λ°”μ΄νŠΈ μ»΄ν“¨ν„°μ—μ„œ μ‚¬μš©ν•˜λŠ” μ •λ³΄μ˜ μ΅œμ†Œλ‹¨μœ„λ₯Ό λΉ„νŠΈ(bit0라고 ν•œλ‹€. μ»΄ν“¨ν„°μ—μ„œλŠ” μ΄μ§„μˆ˜λ₯Ό μ‚¬μš©ν•˜κ³  λΉ„νŠΈλŠ” μ΄μ§„μˆ˜μ˜ ν•˜λ‚˜μ˜ μžλ¦Ώμˆ˜κ°€ λ˜μ–΄ 0μ΄κ±°λ‚˜ 1일 수 μžˆλ‹€. 8개의 λΉ„νŠΈκ°€ λͺ¨μΈ 것이 λ°”μ΄νŠΈ(byte)이닀. λΉ„νŠΈλŠ” μ „μž μŠ€μœ„μΉ˜λ‘œ μ•„μ£Ό κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€. μ „κΈ°κ°€ 흐λ₯΄λ©΄ 1(on)이라고 μƒκ°ν•˜κ³  μ „κΈ°κ°€ 흐λ₯΄μ§€ μ•ŠμœΌλ©΄ 0(off)으둜 μƒκ°ν•˜λ©΄ λ˜λŠ” 것이닀..

[C] Study: λ³€μˆ˜μ™€ μžλ£Œν˜• - (2) μžλ£Œν˜•

[2] μžλ£Œν˜• • μžλ£Œν˜•(data type)μ΄λž€ 자료의 μ’…λ₯˜μ΄λ‹€. λΉ„μ£Όμ–Ό μŠ€νŠœλ””μ˜€μ—μ„œμ˜ μžλ£Œν˜•μ€ λ‹€μŒκ³Ό κ°™λ‹€. μ»΄νŒŒμΌλŸ¬κ°€ 달라지면 μžλ£Œν˜•μ˜ ν¬κΈ°λŠ” 변경될 수 μžˆλ‹€. μžλ£Œν˜• μ„€λͺ… λ°”μ΄νŠΈ 수 λ²”μœ„ μ •μˆ˜ν˜• λΆ€ν˜Έ 있음 short 16λΉ„νŠΈν˜• μ •μˆ˜ 2 -32768 ~ 32767 int 32λΉ„νŠΈν˜• μ •μˆ˜ 4 -2147483648 ~ 2147483647 long 32λΉ„νŠΈν˜• μ •μˆ˜ 4 -2147483648 ~ 2147483647 long long 64λΉ„νŠΈ μ •μˆ˜ 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 λ¬Έμžν˜• λΆ€ν˜Έ 있음 char 문자 및 μ •μˆ˜ 1 -128 ~ 127 λΆ€λ™μ†Œμˆ˜μ ν˜• float 단일정밀도 λΆ€λ™μ†Œμˆ˜μ  4 1.2E-38 ~ 3.4E38 double 두배정밀도..

[C] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 슀쿨_6μ£Όμ°¨ 문제 3: 쀑앙값 κ΅¬ν•˜κΈ°

[1] 문제 문제 μ„€λͺ… 쀑앙값은 μ–΄λ–€ 주어진 값듀을 크기의 μˆœμ„œλŒ€λ‘œ μ •λ ¬ν–ˆμ„ λ•Œ κ°€μž₯ 쀑앙에 μœ„μΉ˜ν•˜λŠ” 값을 μ˜λ―Έν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 1, 2, 7, 10, 11의 쀑앙값은 7μž…λ‹ˆλ‹€. μ •μˆ˜ λ°°μ—΄ arrayκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, 쀑앙값을 return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄λ³΄μ„Έμš”. μ œν•œμ‚¬ν•­ array의 κΈΈμ΄λŠ” ν™€μˆ˜μž…λ‹ˆλ‹€. 0 HTML μ‚½μž… 미리보기할 수 μ—†λŠ” μ†ŒμŠ€ #.2 해석 HTML μ‚½μž… 미리보기할 수 μ—†λŠ” μ†ŒμŠ€ stdio.h 헀더 νŒŒμΌμ„ ν¬ν•¨μ‹œν‚¨λ‹€. 이 헀더 νŒŒμΌμ€ ν‘œμ€€ μž…μΆœλ ₯ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. HTML μ‚½μž… 미리보기할 수 μ—†λŠ” μ†ŒμŠ€ solution ν•¨μˆ˜λ₯Ό μ •μ˜ν•œλ‹€. ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μ€ int νƒ€μž…μ΄λ‹€. ν•¨μˆ˜μ—λŠ” 두 개의 λ§€κ°œλ³€μˆ˜κ°€ μ „λ‹¬λœλ‹€. - array: μ •μˆ˜ν˜•..

[C] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 슀쿨_6μ£Όμ°¨ 문제 2: μ€‘λ³΅λœ 숫자 개수

[1] 문제 문제 μ„€λͺ… μ •μˆ˜κ°€ λ‹΄κΈ΄ λ°°μ—΄ array와 μ •μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, array에 n이 λͺ‡ 개 μžˆλŠ” 지λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄λ³΄μ„Έμš”. μ œν•œμ‚¬ν•­ 1 ≤ array의 길이 ≤ 100 0 ≤ array의 μ›μ†Œ ≤ 1,000 0 ≤ n ≤ 1,000 μž…μΆœλ ₯ 예 array n result [1, 1, 2, 3, 4, 5] 1 2 [0, 2, 3, 4] 1 0 μž…μΆœλ ₯ 예 μ„€λͺ… μž…μΆœλ ₯ 예 #1 [1, 1, 2, 3, 4, 5] μ—λŠ” 1이 2개 μžˆμŠ΅λ‹ˆλ‹€. μž…μΆœλ ₯ 예 #2 [0, 2, 3, 4] μ—λŠ” 1이 0개 μžˆμŠ΅λ‹ˆλ‹€. [2] μ •λ‹΅ 및 해석 #.1 μ •λ‹΅ μ½”λ“œ HTML μ‚½μž… 미리보기할 수 μ—†λŠ” μ†ŒμŠ€ #.2 해석 이 C μ½”λ“œλŠ” 주어진 λ°°μ—΄μ—μ„œ νŠΉμ • 숫자 nκ³Ό μΌμΉ˜ν•˜λŠ” μ›μ†Œμ˜ ..

[C] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 슀쿨_6μ£Όμ°¨ 문제 1: ν”Όμž λ‚˜λˆ  λ¨ΉκΈ° (2)

[1] 문제 문제 μ„€λͺ… 머쓱이넀 ν”Όμžκ°€κ²ŒλŠ” ν”Όμžλ₯Ό μ—¬μ„― 쑰각으둜 잘라 μ€λ‹ˆλ‹€. ν”Όμžλ₯Ό λ‚˜λˆ λ¨Ήμ„ μ‚¬λžŒμ˜ 수 n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, nλͺ…이 μ£Όλ¬Έν•œ ν”Όμžλ₯Ό 남기지 μ•Šκ³  λͺ¨λ‘ 같은 수의 ν”Όμž 쑰각을 λ¨Ήμ–΄μ•Ό ν•œλ‹€λ©΄ μ΅œμ†Œ λͺ‡ νŒμ„ μ‹œμΌœμ•Ό ν•˜λŠ”μ§€λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄λ³΄μ„Έμš”. μ œν•œμ‚¬ν•­ 1 ≤ n ≤ 100 μž…μΆœλ ₯ 예 n result 6 1 10 5 4 2 μž…μΆœλ ₯ 예 μ„€λͺ… μž…μΆœλ ₯ 예 #1 6λͺ…이 λͺ¨λ‘ 같은 양을 λ¨ΉκΈ° μœ„ν•΄ ν•œ νŒμ„ μ‹œμΌœμ•Ό ν”Όμžκ°€ 6쑰각으둜 λͺ¨λ‘ ν•œ 쑰각씩 먹을 수 μžˆμŠ΅λ‹ˆλ‹€. μž…μΆœλ ₯ 예 #2 10λͺ…이 λͺ¨λ‘ 같은 양을 λ¨ΉκΈ° μœ„ν•΄ μ΅œμ†Œ 5νŒμ„ μ‹œμΌœμ•Ό ν”Όμžκ°€ 30쑰각으둜 λͺ¨λ‘ μ„Έ 쑰각씩 먹을 수 μžˆμŠ΅λ‹ˆλ‹€. μž…μΆœλ ₯ 예 #3 4λͺ…이 λͺ¨λ‘ 같은 양을 λ¨ΉκΈ° μœ„ν•΄ μ΅œμ†Œ 2νŒμ„ μ‹œν‚€λ©΄ ..