알고리즘이란 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법이다. 계산을 실행하기 위한 단계적 절차를 의미하기도 한다. 즉, 문제 풀이에 필요한 계산 절차 또는 처리 과정 순서를 의미한다. (위키피아 참조)알고리즘이란 컴퓨터를 통해 구현되고 컴퓨터(cpu성능에
자료구조에서 메모리공간 기반 연속 방식의 가장 기본이 되는 자료형이다. (포인터 기반 연결 방식의 기본 자료형은 연결리스트이다.)따라서 추상 자료형(Abstract Data Type, ADT)의 대부분은 배열 또는 연결리스트를 기반으로 구현한다.(스택, 큐 등 <
알고리즘을 처음 배웠을 때 빅오 다음으로 배웠던 내용이다. 데이터를 구조체로 묶어서 포인터로 연결한다는 개념을 코드로 구현하는데 있어서 비전공자인 나에게 이해가 어려웠다.(youtube에 존재하는 연결리스트 영상은 다 본 듯 하다...) 2이 포인터의 개념을 이해하고
나중에 들어간 데이터가 가장 먼저 나오는 자료구조이다.웹브라우저의 뒤로가기, DFS(깊이 우선 탐색), 후위 연산자의 연산(계산기) 등 에서 활용된다.파이썬에서는 스택 자료형을 별도로 제공하지는 않지만 리스트가 스택의 모든 연산을 지원한다.
👉 큐(Queue) 스택과 같이 프로그래밍이라는 개념이 탄생할 때부터 사용된 가장 고전적인 자료구조이다. FIFO(First-In-First-Out, 선입선출) https://www.programiz.com/dsa/queue
Deque는 double-ended queue의 줄임말로, 앞과 뒤 즉 양방향에서 데이터를 처리할 수 있는 자료구조를 만한다.스택과 큐의 기능을 모두 가졌다.추가: append()삭제: pop()O(1)의 시간복잡도를 가지며, 스택과 동일하다.추가: appendleft
👉 해시 테이블(Hash table) > 해시 테이블(hash table), 해시 맵(hash map)은 키(key)를 값(value)에 매핑 할 수 있는 구조인, 연관 배열 추상 자료형(ADT)을 구현하는 자료구조이다. > 해시 테이블은 1953년 IBM에 근무하
그래프 >수학(그래프이론)에서 그래프란, 객체 일부 쌍(pair)들이 '연관되어' 있는 객체 집합 구조를 말한다. 그래프라 하면 일반적으로 '정점(노드)'과 '간선(엣지)'으로 이루어진 자료구조를 의미한다. 또한 간선의 방향 유무에 따라서 단방향 그래프와 무방향 그래
\-위키피디아 참조트리는 계층형 트리 구조를 시뮬레이션 하는 추상 자료형(ADT)로, 루트 값과 부모-자식 관계의 서브 트리로 구성되며, 서로 연결된 노드의 집합이다.하나의 뿌리에서 뻗어 나가는 형상, 즉 나무처럼 생겨서 '트리'라는 명칭이 붙었다.트리는 재귀로 정의된
이진탐색트리 이진탐색트리란, 정렬된 이진 트리를 말하며 노드의 왼쪽 서브 트리 노드는 부모 노드보다 작으며, 오른쪽 서브 트리 노드는 부모 노드보다 크거나 같다. > value(왼쪽서브트리) ≤ value(루트노드) ≤ value(오른쪽서브트리) 탐색 이진탐색
힙(heap)은 힙의 특성(부모 자식관의 관계)을 만족하는 거의 완전한 트리(Almost Complete Tree)인 특수한 트리 기반의 자료구조이다. 힙(heap)이라는자료구조는 J.W.J. 윌리엄스(Williams)라는 영국의 컴퓨터과학자가 1964년에 힙 정렬
(초창기에는 '트리'로 발음했으나, 기존의 트리(Tree)와 구분하기 위해 '트라이'로 불린다.)키 하나와 값 하나가 연관되어 있으며 키를 통해 연관되는 값을 얻을 수 있는 자료구조 연상 배열, 결합형 배열, 맵(map), 사전(dictionary)으로 부르기도 한다
분할 정복은 직접 해결할 수 있을 정도로 간단한 문제가 될때까지 문제를 재귀적으로 쪼개 해결한 다음, 해결한 하위 문제들의 결과들을 조합하여 원래 문제의 결과를 도출하는 풀이법이다.대표적인 분할 정복 알고리즘으로 병합 정렬이 있다.문제를 축소해서 정복한다는 개념은 고대
Greedy란 탐욕스러운 이라는 뜻을 가진 단어이다. Greedy Algorithm은 어떠한 문제가 있을 때 탐욕적으로 문제를 해결하는 알고리즘이다.여기서 탐욕적이라는 말은 현재 상황에서 가장 좋은 것만 고르는 방법을 의미하며 매 순간 가장 좋아 보이는 것을 선택하고,
알고리즘|풀이 가능한 문제들의 특징 | 풀이 가능한 문제 및 알고리즘 | |------|------------------------|---------------------------| |다이나믹 프로그래밍 |최적 부분 구조(Optimal Substructure) 중