오랜만에 돌아온 기술 블로그~🖐🏻 인턴십 마무리와 댄스팀 촬영, 적절한 휴식기를 가지고 다시 공부 시작~ 오늘 SSAFY 13기 모집 공고💻가 떴다! 내년에 SSAFY에서 교육을 듣는다면 내후년에 취업은 문제 없지 않을까...?!
02-1. 함수의 재귀적 호출의 이해 재귀는 자료구조와 알고리즘에 있어서 매우 중요한 요소이고, C언어는 재귀를 지원하는 언어다. 열혈 c프로그래밍에서 재귀의 동작방식을 이해하는데 중점을 두었다면 이번에는 재귀의 적용을 중심으로 배울 것이다. 재귀함수의 기본적인 이해 C 프로그래밍에서 배운 재귀함수를 다시 한번 살펴보자. 재귀함수의 호출 원리 ...
03-1. 추상 자료형: Abstract Data Type 추상 자료형(Abstract Data Type) 추상 자료형은 간단히 ADT라고도 한다. 객체지향 언어(C++이나, JAVA, Python 등)에서 공부하면 더 깊이 이해할 수 있기 때문에 여기서는 자료구조
Chapter 03에서 배운 것을 다음과 같이 세 가지로 정리할 수 있다. 추상 자료형에 대한 이해 리스트 자료구조의 특성과 활용 리스트 자료구조의 배열 기반 구현 Chapter 04에서는 '연결'을 기반으로 하는 다른 르시트의 구현방법에 대해 배울 것이다. 04
05-1. 원형 연결 리스트(Circular Linked List) 이번에 배울 '원형 연결 리스트'는 Chapter 04에서 배운 단순 연결 리스트에서 약간의 변경만 하면 쉽게 만들 수 있다. 원형 연결 리스트의 이해 단순 연결 리스트에서 마지막 노드는 NULL을 가리켰다. 이 마지막 노드가 첫 번째 노드를 가리키게 하면 이것이 바로 '원형 연결 리...
리스트는 대표적인 선형 자료구조이다. 연결 리스트의 지옥에서 벗어나 이번에 배울 스택도 선형 자료구조의 일종이다. 챕터가 하나로만 이루어져 있으니 조금은 더 쉬울 것이라는 긱대를 하면서어...! 그럼 레츠고우~! 06-1. 스택의 이해와 ADT 정의 스택(Stack)의 이해 스택(Stack)은 후입선출(後入先出)방식의 자료구조로, 'LIFO(Firs...
07-1. 큐의 이해와 ADT 정의 큐는 스택과 함께 언급되고 비교되는 자료구조다. 스택은 먼저 들어간 데이터가 나중에 나오는데에 반해 큐는 먼저 들어간 데이터가 먼저 나오기 때문이다. 이것이 큐와 스택의 유일한 차이점이다...! 그렇다면 연결 리스트 기반으로 큐를 구현할 때 tail이 아닌 head에 새 데이터를 추가하면 될까...? 배우면서 맞는지 살...
08-1. 트리의 개요 이번에 배우게 될 트리(Tree)는 고급 자료구조로 구분된다. 이전에 배운 선형 자료구조들과 달리 트리는 비선형 자료구조다. 집중해서 알아보자~! 트리(Tree)의 접근 트리(Tree)는 계층적 관계(Hierarchical Relations
09-1. 우선순위 큐의 이해 이름만 보았을 때 우선순위 큐는 큐에서 확장하는 수준이 될 것 같지만 실제로 '큐'의 구현과 '우선순위 큐'의 구현에는 많은 차이가 있다. 우선순위 큐와 우선순위 '큐'의 핵심 연산은 큐에 데이터를 삽입하는 enqueue와 큐에서 데
10-1. 단순한 정렬 알고리즘 이번 Chapter에서는 각종 정렬 알고리즘에 대해 알아보자. 각각의 알고리즘이 갖는 특징에 중점을 두고 알아보자. (1) 버블 정렬 (Bubble Sort) 1) 이해와 구현 버블 정렬은 정렬의 대명사로 알려져 있는, 이미 알고 있을 수 있는 정렬 방법이다. 그만큼 이해하기도, 구현하기도 쉽다. 이해와 구현이 쉬운 ...
11-1. 탐색의 이해와 보간 탐색 탐색의 이해 탐색(Search)이란, 데이터를 찾는 방법이다. 앞에서 배운 '순차 탐색(linear search)'이나 '이진 탐색(binary search)'와 같은 탐색 알고리즘을 주로 배우는 것이 아닌 이번 Chapter에서는 Chapter 08에서 배운 트리의 연장선이라 볼 수 있다. 따라서 굳이 따지자면 탐색...
12-1. 균형 잡힌 이진 탐색 트리: AVL 트리의 이해 이번 Chapter에서는 Chapter 11에서 배운 이진 탐색 트리의 단점을 개선한 또 다른 이진 탐색 트리에 대해 배우려한다. 이진 탐색 트리의 단점과 AVL 트리 이진 탐색 트리의 탐색 연산은 $$O
13-1. 빠른 탐색을 보이는 해쉬 테이블 AVL 트리는 탐색 키의 비교 과정을 거치면서 찾는 대상에 가까워지는 방식이기 때문에 원하는 바를 '단번에' 찾아내는 방식이라고 말하기 어렵다. 이러한 상황에서 더 높은 성능을 낼 수 있는 자료구조가 바로 '테이블 (Table)'이다. AVL 트리의 탐색 연산이 $$O(log_2n)$$의 시간 복잡도를 보이는 반...
드디어 마지막 Chapter다. 마지막까지 힘내서 완독해보자~! 14-1. 그래프의 이해와 종류 그래프의 역사 버스와 지하철 노선도와 같이 출발지와 목적지를 정해 최적의 경로를 알 수 있는 것이 있다. 이러한 프로그램의 구현에 사용되는 것이 바로 그래프 알고리즘이