All 27

Linked List로 구현한 스택 (Stack)

Concept단방향에서 Insertion, Deletion 이 발생하는 First in last out 자료구조Time ComplexityWorst CaseAccess : 스택의 바닥에 있는 값까지 n번 움직여야 함 - O(n)Search : 값이 스택의 가장 바닥에 있을 때 n번 움직여야 함 - O(n) Insertion : 바로 push 가능 - O(1) Deletion : 바로 pop 가능 - O(1)Average CaseAccess : Theta(n)Search : Theta(n) Insertion : Theta(1) Deletion : Theta(1)Space ComplexityWorst Casen개의 데이터를 저장할 노드가 n개만큼 필요함 - O(n) Example#include #includ..

연결 리스트 (Linked List)

Concept연속된 형태의 자료를 저장하는 구조Time ComplexityWorst CaseAccess : head부터 시작해서 마지막에 있는 데이터에 접근하려면 - O(n)Search : head부터 시작해서 마지막에 있는 데이터를 찾으려면 - O(n)Insertion : 노드 앞/뒤에 바로 삽입할 수 있음 - O(1)Deletion : 해당 노드를 바로 삭제할 수 있음 - O(1) Average CaseAccess - Theta(n)Search - Theta(n)Insertion - Theta(1)Deletion - Theta(1) Space Complexityn개의 데이터를 저장할 노드가 n개만큼 필요함 - O(n) Example#include #include ​ typedef struct _nod..

알아둬야 할 string.h 주요 함수들

char *strcpy(char *dst, const char *src);문자열 src를 dst로 복사 (dst의 크기 확인, 오버플로우 주의) dst 반환char *strncpy(char *dst, const char *src, size_t num); 문자열 src를 dst로 num개까지만 복사 (사용 후 dst 뒤에 널문자가 안들어갈 경우 주의) dst 반환 char *strcat(char *dst, const char *src); 문자열 dst 뒤에 src를 붙인다. dst 반환char *strncat(char *dst, const char *src, size_t num); 문자열 dst 뒤에 src를 num개까지 붙인다. dst 반환 int strcmp(const char *str1, const ..

알아둬야 할 stdlib.h 주요 함수들

void *malloc(size_t size); memory allocation size만큼 메모리를 할당하고 메모리 영역을 가리키는 void*형 포인터 반환 int *ptr = (int *) malloc(5*sizeof(int)); void *calloc(size_t nitems, size_t size); contiguous allocation malloc과 동일하지만 size*nitems만큼 할당하며, 할당된 공간의 값을 모두 0으로 변환한다. int *ptr = (int *) calloc(5, sizeof(int)); void *realloc(void *ptr, size_t size); malloc과 동일하지만 ptr이 가리키는 곳의 할당된 메모리를 size 크기로 재할당, 기존 할당된 메모리 내 ..

C언어에서 헷갈렸던 것들 짚고 넘어가기

Data Unit1 bit : 0 or 1 (2가지 수 표현)1 byte = 8 bit (2의 8제곱 = 256가지 수 표현) 1 byte in 2진수범위 : 00000000~11111111 (0~255)ex) 1byte : 01001111 (10진수로 79) 1 byte in 16진수 (0x-)범위 : 0x00~0xFF (0~255)ex) 1byte : 0x4F (2진수로 01001111, 10진수로 79)Data Types char : 1byteshort : 2byte int : 4byte (–2,147,483,648 ~ 2,147,483,647) float : 4byte double : 8byte long long : 8byte size_t : unsigned 정수 (시스템에 따라 4byte, 8b..

알고리즘의 성능 평가 및 표기법

알고리즘의 성능 평가시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexity)를 점근적 표기법으로 나타내는 것 점근적 표기법 (Asymptotic Notation) 낮은 계수와 상수를 제거한 복잡도 표기법- Big-Theta Notation : 평균 복잡도 (평균점근)- Big-Oh Notation : 최악의 경우 복잡도 (상한점근)- Big-Omega Notation : 최선의 경우 복잡도 (하한점근) 복잡도 표기시 Big-O를 보편적으로 사용한다. Big-O 표기법의 대표적인 종류 - Constant Time : O(1)- Logarithmic Time : O(log n)- Linear Time : O(n)- Log Linear Time : O(n log n)- Quad..

List of Algorithm Study

C언어를 이용한 알고리즘 테스트 해결을 위한 기본 지식 총 정리하기 Basic알고리즘 문제 해결에 필요한 기본 지식 체크하기 1. 알고리즘의 성능 평가 및 표기법2. C언어에서 헷갈렸던 것들 짚고 넘어가기3. C Libraries- 알아둬야 할 stdlib.h 주요 함수들- 알아둬야 할 string.h 주요 함수들 Function pointer (https://dojang.io/mod/page/view.php?id=597)Data Structure각 자료구조의 개념을 체크하고 정적/동적으로 구현하기Access/Search/Insertion/Deletion 에 대한 Average/Worst Case 시간 복잡도, Worst Case 공간 복잡도 체크하기 1. Linked List2. Stack (Linke..