Set 자료구조에 대해Set은 중복을 허용하지 않는 자료구조로, 요소의 집합을 나타냄.주로 데이터의 유일성을 보장하고자 할 때 사용수학적 집합 개념을 따르며, 순서가 중요하지 않은 데이터를 관리할 때 유용해시 테이블을 사용한다고 해서 Hash Set이라고도 불림.Set의 주요 연산요소 추가 (Add): Set에 요소를 추가. 중복된 요소는 무시됨.요소 삭제 (Remove): Set에서 특정 요소를 삭제. 요소가 존재하지 않으면 아무런 동작도 하지 않음.요소 존재 여부 확인 (Has): Set에 특정 요소가 포함되어 있는지 확인. 포함 true, 그렇지 않으면 false를 반환.모든 요소 삭제 (Clear): Set의 모든 요소를 삭제.Set 크기 확인 (Size): Set에 포함된 요소의 개수를 반환.S..
자료구조
해시테이블이란?프로그래밍 언어에 따라서 조금씩 다른 이름을 가지고 있음해시(Hash), 맵(Map), 해시맵(HashMap), 딕셔너리(Dictionary)해시 함수로 테이블의 인덱스를 새로 만들기 때문에 해시테이블이라는 이름이 붙음. 해시테이블의 장단점장점빠른 검색 속도: 평균적으로 O(1)의 시간 복잡도로 데이터를 검색할 수 있 음. 빠른 삽입 및 삭제: 평균적으로 O(1)의 시간 복잡도로 데이터를 삽입하거나 삭제할 수 있 음. 유연성: 다양한 종류의 데이터를 효율적으로 저장하고 검색할 수 있음.단점충돌 문제: 두 개 이상의 키가 동일한 해시값을 가질 때 충돌이 발생. 이를 해결하기 위해 추가적인 메모리와 시간이 필요.메모리 사용량: 해시테이블은 효율적인 성능을 위해 종종 실제 데이터보다 큰 메모리 ..
덱 자료구조란덱(Deque, Double-ended Queue)은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조입니다. 즉, 앞쪽과 뒤쪽에서 요소를 추가하거나 제거할 수 있습니다. 덱은 스택과 큐의 기능을 모두 갖추고 있어서 다양한 상황에서 유용하게 사용할 수 있습니다. 덱의 주요 연산주요연산설명시간복잡도 push_front(element) - 삽입 덱의 앞쪽에 요소를 추가 O(1) push_back(element) - 삽입 덱의 뒤쪽에 요소를 추가 O(1) pop_front() - 삭제 덱의 앞쪽에서 요소를 제거하고 반환 O(1) pop_back() - 삭제 덱의 뒤쪽에서 요소를 제거하고 반환 O(1) peek_front() - 조회 덱의 앞쪽 요소를 반환 (제거 X) O(1) p..
큐 자료구조란?큐(Queue)는 컴퓨터 과학에서 가장 기본적인 자료구조 중 하나로, 먼저 들어온 데이터가 먼저 나가는 FIFO(First In, First Out) 원칙을 따릅니다. 큐는 일상생활에서 줄을 서는 것과 유사하게, 먼저 줄에 선 사람이 먼저 나가는 구조입니다. 큐의 주요 연산:Enqueue: 큐의 끝에 새로운 요소를 추가하는 연산입니다.Dequeue: 큐의 앞에 있는 요소를 제거하고 반환하는 연산입니다.Peek 또는 Front: 큐의 앞에 있는 요소를 제거하지 않고 반환하는 연산입니다.IsEmpty: 큐가 비어 있는지를 확인하는 연산입니다.Size: 큐에 있는 요소의 개수를 반환하는 연산입니다.큐의 종류:순차 큐 (Linear Queue): 배열을 이용해 구현하며, 큐의 크기가 고정됩니다.원..
스택 알고리즘의 기본 개념스택의 정의: 후입선출(LIFO) 방식으로 동작하는 자료 구조. 가장 나중에 삽입된 데이터가 가장 먼저 제거됨.기본 연산:Push: 스택의 맨 위에 데이터를 추가합니다.Pop: 스택의 맨 위 데이터를 제거하고 반환합니다.Peek/Top: 스택의 맨 위 데이터를 제거하지 않고 반환합니다.isEmpty: 스택이 비어 있는지 확인합니다.스택의 활용 사례프론트엔드 개발에서 스택을 활용하는 몇 가지 대표적인 사례를 살펴보겠습니다.브라우저의 뒤로 가기/앞으로 가기 기능:방문한 페이지의 URL을 스택에 저장하고, "뒤로 가기"를 누르면 Pop 연산을 사용하여 이전 페이지로 이동합니다.괄호의 유효성 검사:코드 에디터나 웹 폼에서 괄호의 짝을 맞추기 위해 스택을 사용합니다.문자열 역순 변환:문자..
자료구조: 연결 리스트연결 리스트(Linked List)는 노드(Node)라는 개별 요소들이 순차적으로 연결된 형태의 자료구조입니다. 각 노드는 데이터와 다음 노드에 대한 참조(포인터)를 가지고 있습니다. 연결 리스트는 배열과 달리 요소들이 메모리 상에 연속적으로 배치되지 않으며, 동적으로 크기가 조정될 수 있습니다.연결 리스트의 종류단일 연결 리스트(Singly Linked List):각 노드는 하나의 데이터와 다음 노드를 가리키는 하나의 포인터를 가집니다.마지막 노드는 다음 노드에 대한 포인터가 null입니다.이중 연결 리스트(Doubly Linked List):각 노드는 데이터와 두 개의 포인터(이전 노드와 다음 노드)를 가집니다.양방향으로 순회가 가능합니다.원형 연결 리스트(Circular Lin..
자료구조: 배열배열(Array)은 동일한 타입의 요소들이 연속적으로 배치된 자료구조입니다. 각 요소는 인덱스를 통해 접근할 수 있으며, 이러한 인덱싱 덕분에 배열은 고정된 크기와 빠른 읽기 속도를 갖는 것이 특징입니다. 배열의 인덱스는 일반적으로 0부터 시작합니다.배열의 특징고정 크기: 배열은 생성 시 크기가 고정되며, 한 번 설정된 크기는 변경할 수 없습니다.인덱스를 통한 빠른 접근: 배열은 인덱스를 통해 O(1) 시간 복잡도로 요소에 접근할 수 있습니다.연속된 메모리 공간: 배열의 요소는 메모리에 연속적으로 저장되어 있습니다.배열의 장단점장점:빠른 접근 속도: 인덱스를 통해 즉시 요소에 접근할 수 있어 매우 빠릅니다.간단한 구현: 배열은 간단한 구조로 되어 있어 이해하고 사용하기 쉽습니다.단점:고정된..