데이터를 포함하고 저장하는 방법 자료를 '효율'적으로 접근 및 수정하기 위해 자료의 조직, 관리, 저장하는 것 자료구조와 알고리즘을 구분하는 방법이 있다면, 자료구조는 '데이터의 표현 및 저장 방법'을 뜻하자면, 알고리즘은 표현 및 저장된 데이터를 대상으로 하는 '문제
오늘 공부한 파트는 재귀이다. 팩토리얼과 피보나치 수열과 같이 간단한 재귀를 활용한 문제들이 많은 것도 맞지만, 이진 탐색과 같은 재귀함수를 활용하여 풀 수 있는 알고리즘들도 존재하기에 재귀는 알고리즘 내에서 굉장히 중요하다는 것을 알아야한다.재귀함수란? : 함수 내
오늘 첫번째 자료구조인 연결리스트, 그 중에서도 배열 기반 연결리스트의 학습 내용을 요약하려고 한다. 다만, 그 전에 자료구조에서 자주 쓰이는 용어인 추상 자료형에 대한 개념을 확실히 잡고 가도록 하겠다.추상 자료형 : Abstract Data Type 이란?: 구체적
이 전 'Data Structure 이렇게 나타낼 수 있다. 여기서 포인터 변수인 next는 Node형 구조체 변수로 그 노드 안에다른 구조체 변수를 연결한다고 표현 할 수 있다. 그림으로 표현하면 다음과 같다. 즉, 요약하면 한 노드에 그 노드에 들어가야할 데이터 공
이번 포스트에서 학습할 내용은 스택이다. 스택은, 앞서 배운 리스트보다는 훨씬 더 쉽게 동작하는 것을 확인할 수 있다. 대표적인 예제인 계산기 프로그램과 같이 구현하기에는 어려울 수는 있겠지만 내용은 어렵지 않다는 것을 다짐하면서 이 포스트를 시작해보겠다.스택이란?나중
이번에 학습한 큐(Queue)는 앞서 했던 '스택'의 자료구조랑 굉장히 유사하면서 정반대인 자료구조이다. 스택은 접시를 여러개 쌓으면 나중에 쌓은 접시를 제일 먼저 뽑을 수 있는 후입선출의 구조라면, 큐는 먼저 들어간 데이터가 먼저 나오는 선입선출의 구조이다. 큐란?먼
이번 포스트는 트리라는 자료구조를 다뤄볼 것이다. 앞서 다뤄봤던 배열, 리스트, 스택, 큐와는 이질적인 자료구조인데 이는 트리를 설명하면서 뒤에서 다뤄보도록 하겠다. 트리(Tree)란? 계층적 관계를 표현하는 자료구조 (고급 자료구조) 가지를 늘려가며 뻗어나가는 자료구
이번 포스트에서 다룰 자료구조는 우선순위 큐이다. 앞 포스트에 큐라는 자료구조에 대해 배웠는데, 이와 굉장히 유사하다. 우선순위 큐(Priority Queue)란?일반적인 큐와 동일하게 연산 dequeue, enqueue 을 통해 데이터를 추가/삭제가 가능한 자료구조.
오늘은 정렬에 대해서 알아보려고 한다. 기존에 다뤘던 자료구조들을 활용한 정렬도 있기에 앞부분 포스트를 보고 오면 더 잘 이해할 수 있을 거라고 생각한다. 인접한 2개의 데이터를 비교해가면서 정렬을 진행하는 방식 버블 정렬은 위 사진처럼 진행된다. 두 개의 반복문을 사
물론 이 포스트의 제목은 탐색이다. 하지만, 관련 범위를 학습하다보면, 이는 앞서 정렬의 방법들을 열거한 것과는 다르게 트리의 심화학습과 같다는 생각이 들었다. 사실상, 트리라는 자료구조를 우리가 더 효율적인 탐색 방법을 위한 저장 방법이라고 생각하면 더 편하게 생각할
이번 포스트에서 다룰 주제도 저번 포스트에 이어 탐색에 관한 내용이다. 하지만, 사실상 이번 포스트에도 트리에 대하여 좀 더 자세하게 공부하는 느낌으로 볼 수 있다. AVL트리에 대해 학습하기 전에, 이진탐색트리의 시간복잡도를 다시 보자. 이진탐색트리의 시간 복잡도는
이제 자료구조에 대한 포스트에서 다룰 주제가 크게 2가지밖에 남지 않았다. 그 중하나는 다음시간에 다룰 그래프(Graph)이고, 하나는 이번 포스트에서 다룰 테이블(Table)과 해쉬(Hash)이다. 테이블은 우리가 일상생활에서 자주보는 일종의 표라고 생각하면 편하다.
이번 포스트로 아마 자료구조 포스트는 마무리 될 것이다. 물론, 고급 자료구조로 넘어가면 더 자세히 나갈 부분은 남았지만, 이는 그때그때 학습을 하게 되어 저장해야할 일이 생기면 추가 'cs공부' 포스트 내에 입력하도록 하겠다. 이번 포스트에서 다룰 주제는 '그래프'이
오늘은 데이터 베이스에 관한 기본 개념에 대해 설명해보려고 한다. 이런식으로 복잡한 ER 다이어그램을 그려보기 전에 필요한 개념들에 대해 한 번 정리해보려고 한다. 데이터베이스(DB)란, 여러 사람이 공유하여 사용할 수 있도록 구조화된 데이터의 집합입니다. 그러면 일반