본문 바로가기

독서/C언어로 쉽게 풀어쓴 자료구조9

[CDS] chapter 3 : 배열, 구조체, 포인터 1. 배열과 구조체상세한 내용은 KNK 정리 파트에서 확인하기로 하고, 여기서는 간단히 개념을 짚고 넘어가자.(1) 배열C언어의 기본적인 자료구조 배열(array)은 동일한 데이터 타입의 요소들을 연속적으로 저장하는 구조이다. 배열이라는 자료구조가 갖는 이점은 '대량의 데이터를 저장하고 다루는 것'에 있다. 배열은 연속적인 메모리 공간이 할당되고 인덱스 번호를 사용하기 때문에 반복문을 활용한 여러 작업을 간편하게 할 수 있다.(2) 구조체C언어의 구조체(structure)는 서로 다른 타입의 변수들을 하나의 단위로 묶어주는 '사용자 정의 자료형'이다. 아래의 간단한 예시 코드를 통해 사용방법에 익숙해져보자.#include #include // 구조체 정의typedef struct { char nam.. 2024. 12. 30.
[CDS] chapter 2 : 순환 1. 순환(Recursion) 기본순환(=재귀)이란 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 기법이다. 순환은 본질적으로 순환적인 문제에 적합한데, 이 순환적인 문장이 무슨 의미인지 예시를 통해 살펴보자. 펙토리얼을 프로그래밍으로 구현하려면 어떻게 해야 할까? 자연수 n을 입력받아서 n부터 1까지 모든 자연수를 곱한 값을 반환해주면 된다는 점에서, 다음과 같이 반복문을 활용해 구현할 수 있을 것이다.int factorial(int n){ int ans = 1; for (int i = n; i > 0; i--){ ans = ans * i; } return ans;} 그런데 n! = n * (n - 1)!이라는 점을 생각해보면 펙토리얼은 본질.. 2024. 11. 29.
[CDS] chapter 1 : 자료구조와 알고리즘 1. 자료구조와 알고리즘의 개념컴퓨터 프로그램 = 자료구조 + 알고리즘 이라고 할 수 있다. 여기서 자료구조란 데이터를 효율적으로 저장하고 관리하기 위한 체계적인 방법을 말하고, 알고리즘은 데이터를 활용해 문제를 처리하는 절차를 말한다. 자료구조와 알고리즘은 서로 보완적인 관계에 있다. 적절한 자료구조 없이는 효율적인 알고리즘을 설계하기 어렵고, 효율적인 알고리즘 없이는 자료구조를 제대로 활용할 수 없다. 따라서 효율적인 프로그램을 작성하려면 반드시 자료구조와 알고리즘을 함께 고려해야 한다. 프로그래밍은 결국 알고리즘을 작성하고 그에 적합한 자료구조를 선택하는 것이다. 적절한 자료구조와 알고리즘을 적용하면 문제를 훨씬 효율적으로 해결할 수 있게 된다.2. ADT : 추상 자료형자료형(data type)이.. 2024. 11. 21.
책 소개 : C언어로 쉽게 풀어쓴 자료구조 1. 서소프트웨어 엔지니어를 목표로 공부하다보면 여러 최신기술 내지 tool을 익히는데 매몰되곤 한다. 프로그래밍 언어를 어느정도 다룰줄 알게되고, 이를 기반으로 각종 도구를 활용해 어설프면서도 그럴듯한 결과물을 뽑아내고 있으면 옳은 방향으로 나아가고 있는 기분이 든다. 그러나 언제나 가장 중요하고 또 가장 충실히 다져야 할 것은 바로 기본기이다. 이것은 어떤 공부에서도 통용되는 진리라고 생각한다. 그렇기에 CS스터디 운영중단으로 잠시 미뤄두었던 computer science 공부를 이제는 다시 제대로 시작하려 한다. 그리고 그 시작은 'C언어로 쉽게 풀어쓴 자료구조'이다. 2. 자료구조는 어떻게 공부해야 할까?자료구조는 CS의 기본중의 기본이 되는 과목으로 그 중요성은 말할 필요도 없다. 본질적인 중요.. 2024. 9. 22.