목록[알고리즘] (39)
개발자로 후회없는 삶 살기
서론 Set을 구현해보겠습니다. ※ 이 포스트는 다음 교재의 학습이 목적임을 밝힙니다. https://github.com/easysIT/doit_dsalgo_with_c GitHub - easysIT/doit_dsalgo_with_c: Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편 Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편. Contribute to easysIT/doit_dsalgo_with_c development by creating an account on GitHub. github.com 본론 - 집합 개념 1. 순서가 없습니다. 2. X = {1,2,3} 으로 표현합니다. 3. 표기법 1) a가 집합 X의 원소 a∈X 2) b가 집합 X의 원소가 아닙니다 b∈/X 3..
서론 교과목 4주차 본론 - 리스트의 목적 해결해야 하는 문제의 자료를 분석했더니 원소가 하나씩 순서대로 나열되어 있고, 삽입, 삭제 연산보다는 읽기 ㆍ 쓰기 ㆍ 순차 액세스 연산이 주된 연산이라면 선형 리스트가 적절하다. - 응용 1 - 희소행렬 목적 : 원소 대부분이 0인 희소 행렬을 리스트에 저장하기에는 기억 공간의 활용도가 많이 떨어진다. ∴ 0이 아닌 원소들에 대한 행, 열, 값의 쌍을 구해서 2차원 배열에 저장한다 > 교재 pg28을 보면 56개의 요소에서 33개로 필요한 요소의 개수가 준다. def a(): arr = [[8, 7, 10], [0, 2, 2], [0, 6, 12], [1, 4, 7], [2, 0, 23], [3, 3, 31], [4, 1, 14], [4, 5, 25], [5,..
서론 트리를 이용하는 힙정렬 ※ 이 포스트는 다음 교재의 학습이 목적임을 밝힙니다. https://github.com/easysIT/doit_dsalgo_with_c GitHub - easysIT/doit_dsalgo_with_c: Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편 Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편. Contribute to easysIT/doit_dsalgo_with_c development by creating an account on GitHub. github.com 본론 - 힙이란? 정의 : 부모가 항상 자식보다 큰 것을 만족하는 완전 이진 트리 -> 이것을 보고 떠올린 것 = 아래에서부터 훑어서 위로가면 오름차순 정렬이겠습니다. (삭제를 해야 오름차..
서론 시간 복잡도를 낮추는 정렬들! ※ 이 포스트는 다음 교재의 학습이 목적임을 밝힙니다. https://github.com/easysIT/doit_dsalgo_with_c GitHub - easysIT/doit_dsalgo_with_c: Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편 Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편. Contribute to easysIT/doit_dsalgo_with_c development by creating an account on GitHub. github.com 본론 - 쉘 정렬 아이디어 : 삽입정렬을 할 때 배열이라는 자료구조 특성상 요소를 삽입할 때 이후 요소를 한 칸 씩 밀어야하는 비용을 줄이자! => 방법 1. n, n/2, n/4,..
서론 생각해보니 정렬을 알긴 알아도 깊게 파고 들어서 정립한 적은 없습니다. 제대로 파헤쳐 보겠습니다. ※ 이 포스트는 다음 교재의 학습이 목적임을 밝힙니다. https://github.com/easysIT/doit_dsalgo_with_c GitHub - easysIT/doit_dsalgo_with_c: Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편 Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편. Contribute to easysIT/doit_dsalgo_with_c development by creating an account on GitHub. github.com 본론 - 정렬을 하는 이유 1. 데이터를 정렬하면 검색을 더 쉽게 할 수 있습니다. 2. 만약 사전에 실린 단어가..
서론 재귀에 대해 알아보겠습니다. ※ 이 포스트는 다음 교재의 학습이 목적임을 밝힙니다. https://github.com/easysIT/doit_dsalgo_with_c 본론 - 스스로 익힌 재귀의 패턴 1. 부분문제로 쪼개는 생각 2. 쪼개도 같은 목표를 바라보는 생각 3. 종료조건 ex) 유클리드 호제법 22 % 8 > 8 % 6 > 6 % 2 > 4 % 2 > 2 % 2 -> 이것이 바로 부분문제로 쪼개고, 쪼개도 같은 목표를 바라보는 것 int gcd(int x, int y){ if(x % y == 0) return y; gcd(y, x % y); } int main(void){ printf("%d", gcd(22, 8)); // 정답 : 2 } EX) 배열 a의 모든 요소의 최대공약수를 구하라..
서론 스택을 알아보겠습니다! ※ 이 포스트는 다음 교재의 학습이 목적임을 밝힙니다. https://github.com/easysIT/doit_dsalgo_with_c GitHub - easysIT/doit_dsalgo_with_c: Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편 Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편. Contribute to easysIT/doit_dsalgo_with_c development by creating an account on GitHub. github.com 본론 - 함수 호출을 스택으로 한다? -> 실제 함수 호출은 훨씬 복잡합니다. - 스택 구조체 -> 멤버 1. stk : 스택 배열을 바라볼 배열 포인터 2. ptr : 스택 포인터 > 두..
서론 검색 알고리즘을 알아보겠습니다. ※ 이 포스트는 다음 교재의 학습이 목적임을 밝힙니다. https://github.com/easysIT/doit_dsalgo_with_c GitHub - easysIT/doit_dsalgo_with_c: Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편 Do it! 자료구조와 함께 배우는 알고리즘 C 언어 편. Contribute to easysIT/doit_dsalgo_with_c development by creating an account on GitHub. github.com 본론 - 특징 검색은 특정 항목에 주목합니다. 국적을 검색하는 경우 국적이 키이고 나이를 검색하는 경우 나이가 키입니다. - 종류 1. 선형 검색 : 무작위로 늘어놓은 데이터 모임..