
알고리즘에서 시간 복잡도는 문제를 해결하기 위한 연산 횟수, 일반적으로 수행 시간은 1억 번의 연산을 1초의 시간으로 간주하여 예측한다.시간 복잡도 표기 유형빅 오메가 > 최선일 때의 연산 횟수를 나타낸 표기법빅 세타 > 보통일 때 연산 횟수를 나타낸 표기법빅 오 >

배열과 리스트는 비슷한 점도 많지만 다른 점도 많다.메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조배열의 값은 인덱스를 통해 참조할 수 있다.새로운 값 삽입, 특정 인덱스 값 삭제가 어렵다배열의 크기는 선언할 때 지정, 선언 후에 크기를 늘리거나 줄일 수 없다구

배열에서 발전된 형태의 자료구조스택은 삽입과 삭제 연산이 후입선출(LIFO)로 이루어지는 자료구조스택은 깊이 우선 탐색(DFS), 백트래킹 종류의 코딩 테스트에 효과적후입선출 개념은 재귀 함수 알고리즘의 원리와 일맥상통연산top: 삽입과 삭제가 일어나는 위치push:

트리는 노드와 에지로 연결된 그래프의 특수한 형태이다.순환 구조를 지니고 있지 않고, 1개의 루트 노드가 존재한다.루트 노드를 제외한 노드는 단 1개의 부모 노드를 갖는다.트리의 부분 트리 역시 트리의 모든 특징을 따른다.tree그래프로 푸는 tree -> DFS, B

이진 트리는 각 노드의 자식 노드(차수)의 개수가 2 이하로 구성된 트리를 말한다.트리 영역에서 가장 많이 사용되는 형태이다.이진 트리의 종류이진 트리에는 편향 이진 트리, 포화 이진 트리, 완전 이진 트리가 있다.편향 이진 트리: 노드들이 한쪽으로 편향되어 생성된 이

주어진 데이터의 구간 합과 데이터 업데이트를 빠르게 수행하기 위해 고안된 자료구조의 형태이다. 더 큰 범위는 '인덱스 트리'라고 불린다.세그먼트 트리의 종류는 구간 합, 최대, 최소 구하기로 나눌 수 있고,구현 단계는 하기와 같이 나눌 수 있다.트리 초기화하기질의값 구

그래프는 노드와 엣지로 구성된 집합이다.graph트리 또한 그래프의 일종이다.엣지 리스트는 엣지를 중심으로 그래프를 표현한다.엣지 리스트는 배열에 출발 노드, 도착 노드를 저장하여 엣지를 표현하거나출발 노드, 도착 노드, 가중치를 저장하여 가중치가 있는 엣지를 표현한다

큐와 유사하지만 우선순위가 높은 아이템이 먼저 처리되는 큐Insert: 우선순위 큐에 데이터 삽입Delete: 우선순위 큐의 성질에 따라 제일 상위(최댓값 또는 최솟값) 삭제Peek: 우선순위 큐의 성질에 따라 제일 상위(최댓값 또는 최솟값) 확인힙은 주로 이진 트리(
key-value 쌍을 저장하는 ADT(Abstract Data Type: 추상 자료형)같은 key를 가지는 쌍은 최대 한 개만 존재(key의 중복을 허용하지 않음)associative array, dictionary라고 불리기도 함해시 테이블(Hash Table)트리

데이터를 저장하는 추상자료형(ADT)순서를 보장하지 않음데이터의 중복을 허용하지 않음데이터 조회가 List보다 빠름중복된 데이터를 제거해야 할 때(중복 미허용 특성 활용)데이터의 존재 여부를 확일해야 할 때(빠른 데이터 조회 속도 특성)hash setlinked has

값을 저장하는 ADT(Abstract Data Type: 추상 자료형)순서가 있음중복을 허용Array ListLinked List배열(Array)을 사용하여 List를 구현메모리에 연속적으로 값이 할당됨노드를 연결시키는 형태로 구현메모리에 연속적으로 값이 할당되지 않고