일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- network
- 스프링
- git
- 세션계층
- 네트워크
- 깃허브
- 깃
- 데이터링크계층
- 다이나믹 프로그래밍
- 부팅 장애 대응
- SlidingWindow
- bitmasking
- AppArmor
- TwoPointer
- Spring Boot
- 알고리즘
- github
- 스프링부트
- spring
- Prefix sum
- QUIC
- Linux
- 슬라이딩 윈도우
- 리눅스
- 누적합
- 표현계층
- 로그 수집
- 투포인터
- 비트마스킹
- 네트워크 관리 및 진단
- Today
- Total
목록Algorithm (21)
kimgusxo 님의 블로그

1. 덱(Deque)이란?- 덱은 Double-Ended Queue로 큐와 유사한 형태지만 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조이다.- 앞쪽과 뒤쪽 어느 쪽에서도 데이터를 추가하거나 제거할 수 있어 상황에 따라 스택과 큐로 활용가능하다.- 슬라이딩 윈도우, 브라우저 히스토리 등의 알고리즘에서 활용된다. 2. 주요 메소드- addFirst(E element): 맨 앞에 요소를 삽입한다.- addLast(E element): 맨 뒤에 요소를 삽입한다.Deque deque = new ArrayDeque();deque.addFirst("Apple"); // 맨 앞에 "Apple" 추가deque.addLast("Banana"); // 맨 뒤에 "Banana" 추가 - removeFirst(): 맨 앞의..

1. 큐(Queue)란?- 큐는 데이터를 순서대로 저장하는 자료구조로, 먼저 추가된 데이터가 먼저 제거되는 선입선출(FIFO: First In First Out) 방식을 따른다.- 큐는 주로 작업 스케줄링, 프로세스 관리, BFS 등의 알고리즘에 활용된다.- 자바에서는 Queue 인터페이스를 통해 큐를 다루며, 구현체로는 LinkedList와 ArrayDeque가 있다. 2. 주요 메소드- offer(E element): 큐의 맨 뒤에 요소를 추가한다.Queue queue = new LinkedList();queue.offer("Apple"); // 큐의 맨 뒤에 "Apple" 추가 - poll(): 큐의 맨 앞에 있는 요소를 제거한다.Queue queue = new LinkedList();queue.o..

1. 스택(Stack)이란?- 스택은 데이터를 저장하는 자료구조 중 하나로 마지막에 추가된 데이터가 가장 먼저 꺼내지는 후입선출(LIFO: Last In First Out) 방식을 사용한다.- 주로 괄호검사, 후위표기식, 재귀, 백트래킹 등의 알고리즘에 활용된다.- 자바에서는 Vector를 상속받아 구현되어 있으므로 동기화 등에서 불필요한 오버헤드가 발생할 수 있어 Deque 인터페이스를 사용하는 ArrayDeque를 스택처럼 사용할 수도 있다. 2. 주요 메소드- push(E item): 스택의 가장 위에 요소를 추가한다.Stack stack = new Stack();stack.push("Apple"); // 스택에 "Apple" 추가 - pop(): 스택의 가장 위에 있는 요소를 제거한다.Stack ..

1. 리스트(List)란?- 리스트는 데이터를 순차적으로 관리하는 컬렉션 프레임워크의 한 종류로 순서가 유지되며 중복된 요소를 허용한다는 특징이 있다. 자주 사용되는 구현체로는 ArrayList(배열기반)와 LinkedList(노드기반)가 있다. 1-1. ArrayList의 특징- 연속된 메모리 공간에 데이터를 저장하며 인덱스를 이용한 접근은 O(1)의 복잡도를 가진다.- 중간에 요소를 삽입하거나 삭제할 때 뒤에 요소를 이동시켜야 하므로 O(n)의 복잡도를 가진다.- 추가적인 참조가 필요없어 메모리 오버헤드가 적다.- 연속된 메모리 공간에 저장되어 있어 캐시 효율성이 좋다. 1-2. LinkedList의 특징- 각 노드가 다음 노드에 대한 참조를 가지고 있으며 인덱스를 통한 접근은 순차적으로 탐색해야 되..

1. 문자열(String)이란?- 자바에서 문자열은 String 클래스로 표현되며, 불변(immutable) 특성을 갖고 있다. 즉 한 번 생성된 문자열은 변경할 수 없고 수정이 필요할 때마다 새로운 문자열 객체가 생성된다.- 이러한 특성 때문에 메모리 관리와 쓰레드 안정성 측면에서는 장점으로 작용하지만 변경이 잦을경우 StringBuffer나 StringBuilder를 사용하자! 2. 주요 메소드- length(): 문자열의 길이를 반환한다.String str = "Hello";System.out.println(str.length()); // 출력: 5 - charAt(int index): 해당 인덱스의 문자를 반환한다.String str = "Hello";System.out.println(str.c..