➜ Java

자료구조 힙(Heap)이란?

오늘은 힙(heap)에 대해서 알아볼 생각이다. 힙은 데이터에서 가장 큰(또는 가장 작은) 항목에 빠르게 접근하도록 설계된 트리 기반의 자료 구조이다. 데이터 정렬 , 우선순위 큐 등 다양한 알고리즘에서 활용된다. 힙(heap)이란? 힙은 '완전 이진 트리(complete binary tree)'의 한 종류로, 힙에 저장된 각 노드의 키(key)는 자식 노드의 키와 비교하여 특정 순서를 유지한다. 힙에는 두가지 유형이 있다. 최대 힙(Max Heap): 부모 노드의 키가 자식 노드의 키보다 항상 크거나 같다. 따라서 힙의 루트(root)는 항상 가장 큰 키를 가진 노드이다. 최소 힙(Min Heap): 부모 노드의 키가 자식 노드의 키보다 항상 작거나 같다. 이 경우, 루트는 항상 가장 작은 키를 가진 ..

➜ Java

LinkedList(Single Linked List와 Double Linked List)란? / LinkedList 메서드 정리

LinkedList는 자료구조 중 하나로, 데이의 선형 리스트를 노드라는 개별적인 단위로 나타낸 것이다. 각 노드는 데이터와 그다음 노드에 대한 참조를 가지고 있다. 이렇게 서로 연결된 노드들의 체인을 통해 전체 데이터의 리스트를 표현한다. 연결리스트(Linked List) 하나의 개체를 이루는 노드가 연결되어 리스트를 이루는 구조이다. 노드에는 값을 담고 있는 데이터와 다음 노드를 가리키는 링크 정보를 저장하고 있다. 데이터에는 숫자, 문자열, 또다른 연결 리스트 등 다양한 형식을 가질 수 있다. 일반적으로 리스트의 맨 앞 노드를 헤드, 맨 마지막 노드를 테일이라고 한다. 이런 식으로 왼쪽엔 데이터 오른쪽엔 next링크 정보를 저장하고 있다. 배열과 연결리스트는 비슷해보이지만 다른 차이점을 가지고 있다..

➜ Java

HashMap이란? / 해시 충돌(Hash Collision) /HashMap 메서드 정리

HashMap이란 Java의 내장 자료구조로, "Map" 인터페이스를 구현한 클래스이다. 키(key)와 값(value)를 하나의 쌍으로 저장하는 자료구조인데 이러한 키와 값의 쌍을 엔트리(Entry)라고 합니다. HashMap의 특징 장점 키와 값의 쌍으로 이루어진 데이터 저장 중복 키 허용 안함 : 동일한 키로 데이터를 저장하면 기존의 값을 덮어쓴다 키에 대한 null 값 허용: 키가 null인 경우, 해당 키에 연결된 값은 HashMap의 0번째 버킷(Bucket)에 저장된다 단점 순서를 유지하지 않는다 : 데이터의 순서가 중요한 경우에는 LinkedHashMap을 사용하면 된다 멀티스레드 환경에서의 동시성 제어 : HashMap은 멀티스레드 환경에서 여러 스레드가 동시에 HashMap을 조작하는 것..

➜ Java

배열(Array) 이란 / 배열(Array) 관련 메서드 정리

배열은 동일한 타입의 여러 개의 데이터를 하나의 이름으로 그룹화하여 관리할 수 있는 구조이다. 배열의 각 요소는 인덱스라는 고유한 번호로 식별되며, 이 인덱스를 통해 배열의 데이터에 접근할 수 있다. 이런 방식은 반복문과 같은 제어 구조와 결합할 때 유용하다 배열이란? 배열은 동일한 데이터 타입의 여러 값을 담을 수 있는 자료 구조이다. 배열은 기본 데이터 타입(int, char 등) 또는 객체(문자열, 사용자 정의 객체 등)의 참조를 저장할 수 있다. 배열의 특징 동일한 타입의 데이터 저장 : 배열은 한 번 생성하면 그 타입 외의 다른 타입의 데이터를 저장할 수 없다. 고정된 크기 : 배열은 생성 시에 지정한 크기를 변경할 수 없다. 따라서 한 번 생성된 배열에 더 많은 데이터를 저장하려면 새로운 배열..

➜ Java

큐(Queue)란 / 큐의 메서드 정리 (feat. 우선순위 큐)

큐(Queue)란 스택과 다르게 FIFO(First In First Out)의 구조를 가지고 있다. 그래서 먼저 들어온 데이터가 먼저 나가는 형식을 가지고 있다. 예를 들어 마트에서 줄 서는 것을 생각하면 쉽다 컴퓨터의 작업 스케쥴링, 네트워크 요청 처리, 데이터 스트림 관리 등 많은 시스템에서 큐가 활용된다. 큐(Queue)의 특징 선입선출(FIFO) 방식 : 큐는 가장 먼저 입력된 요소가 가장 먼저 출력되는 선입선출 방식을 따른다 입력과 출력이 한 방향에서 이루어짐 : 큐에서 데이터는 한쪽 끝에서만 삽입되고, 다른 한쪽 끝에서만 삭제된다. 데이터의 조회는 Front에서만 이루어짐 : 데이터 조회는 Front 위치에서만 이루어진다. Rear위치에서 데이터를 조회하는 건 허용되지 않는다. 속도와 효율성..

➜ Java

스택(Stack) / Java 스택 메소드 정리

스택에 관련된 문제를 풀다가 개념 정리가 필요할 것 같아서 정리하게 됐다 2023.07.11 - [➜ 코딩 테스트/백준] - 백준 - (25556) 포스택 백준 - (25556)포스택 1. 길이가 N인 순열과 4개의 비어 있는 스택이 있다. 2. 순열의 원소들을 앞에서부터 순서대로 네 개의 스택 중 하나에 삽입한다. 3. 순열의 모든 원소를 스택에 삽입했다면, 원하는 스택에서 수를 mangseok.tistory.com 스택(Stack) 자료 구조 중 하나로, LIFO (Last In First Out)의 특징을 가지고 있다. 이는 스택의 가장 마지막에 들어간 요소가 가장 먼저 나오게 되는 구조를 의미한다. 스택의 예시 그림을 그려 봤는데 이런 식으로 하나씩 쌓아가고 맨 위에 있는 요소가 먼저 나가게 되는..

➜ Java

리스트(List)와 문자열 배열(String Array)의 차이점 (feat. 배열 원소제거하기)

리스트(List)와 문자열 배열(String Array)의 차이점 (feat. 배열 원소제거하기) Java에서 데이터를 저장하고 관리하는 데에는 여러 가지 방법이 있다. 그 중에서도 리스트(List)와 문자열 배열(String Array)는 많이 사용되는 방식이다. 리스트와 문자열 배열에 대해서 알아보고 두 가지의 차이점에 대해서 정리해 보겠다 리스트(List) 리스트는 크기가 가변적이다. 요소의 개수를 동적으로 조정할 수 있다. 리스트는 여러 종류의 객체를 저장할 수 있다. 예를 들어 정수, 문자열, 객체 등을 저장할 수 있다. 리스트는 요소의 추가, 삭제, 수정이 용이하다. 'add()', 'remove()', 'set()' 등의 메소드를 사용하여 요소를 조작할 수 있다. ArrayList, Link..

강맹석
'➜ Java' 카테고리의 글 목록