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)의 시간 복잡도로 데이터를 삽입하거나 삭제할 수 있 음. 유연성: 다양한 종류의 데이터를 효율적으로 저장하고 검색할 수 있음.단점충돌 문제: 두 개 이상의 키가 동일한 해시값을 가질 때 충돌이 발생. 이를 해결하기 위해 추가적인 메모리와 시간이 필요.메모리 사용량: 해시테이블은 효율적인 성능을 위해 종종 실제 데이터보다 큰 메모리 ..
* 이 게시글은 모 든 개발자를 위한 HTTP 웹 기본 지식 강의를 수강한 뒤 정리한 글입니다. 인터넷 통신클라이언트 ⮆ 인터넷 ⮆ 서버 클라이언트에서 서버로 데이터가 넘어갈 때는 인터넷 망을 통해 넘어감인터넷 망은 복잡함IP (인터넷 프로토콜) 역할지정한 IP 주소에 데이터 전달패킷이라는 통신 단위로 데이터 전달IP 패킷은 인터넷망을 통해 인터넷망 노드끼리 이동해서 서버로 전달함.IP 패킷 정보출발지 IP목적지 IPTCP 관련 정보 : 하단에 보면 있음전송데이터IP 프로토콜의 한계비연결성 : 패킷을 받을 대상이 없거나 서비스 불능상태여도 패킷 전송비신뢰성 : 중간에 패킷이 사라지거나 순서대로 안오는 경우는?프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?TCP / ..
덱 자료구조란덱(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) 시간 복잡도로 요소에 접근할 수 있습니다.연속된 메모리 공간: 배열의 요소는 메모리에 연속적으로 저장되어 있습니다.배열의 장단점장점:빠른 접근 속도: 인덱스를 통해 즉시 요소에 접근할 수 있어 매우 빠릅니다.간단한 구현: 배열은 간단한 구조로 되어 있어 이해하고 사용하기 쉽습니다.단점:고정된..