일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tcp
- aws s3
- OS
- docker
- Network
- JavaScript
- grafana
- kubernetes
- Operating System
- Vision
- EC2
- helm
- kubectl
- Packet
- log
- ip
- java
- CSV
- zookeeper
- Spring
- AWS
- airflow
- CVAT
- Kafka
- jvm
- MAC address
- Trino
- PostgreSQL
- kubeadm
- Python
- Today
- Total
목록Programing/Algorithm (4)
JUST WRITE
이 글은 책 알고리즘 도감에서 HashTable 부분을 정리한 글입니다. HashTable HashTable은 Key와 Value가 한 쌍을 이뤄서 Data를 저장하는 자료구조입니다. 일반적으로 Key는 Data 식별자이며, Value는 Data의 내용입니다. Hash 함수와 함께 Data 검색을 효율적으로 사용되는 구조입니다. HashTable은 내부적으로 배열을 사용하여 Data를 저장합니다. Key값에 대한 Hash 함수를 적용해서 Index 값을 생성합니다. 생성한 Index에 해당 Key에 대한 Value값을 배열에 저장합니다. Hash 함수 Hash 함수는 주어진 Data를 고정 길이의 불규칙한 숫자로 변환하는 함수이다. 불규칙한 숫자는 Data를 요약한 것으로 Hash 값이라 한다. Hash..
이 글은 책 알고리즘 도감에서 Stack, Queue 부분을 정리한 글입니다. Stack 데이터를 1열로 나열하지만 새롭게 추가한 데이터에만 접근 LIFO(Last in, First Out) 후입 선출 구조 단방향으로만 조작해 최신 데이터만 접근 가능 Queue 데이터를 1열로 나열, Stack 반대로 선두 데이터에만 접근. 대기행렬이라고 부르기도 함. FIFO(First in, First Out) 선입 선출 구조. 중간 데이터 접근 X, 필요한 데이터 나올 때까지 dequeue(Queue에서 데이터 꺼내는 작업) Queue 구현 Array로 구현 import java.util.Objects; public class CustomQue { private final int DEFAULT_CAPACITY = ..
이 글은 책 알고리즘 도감에서 List, Array 부분을 정리한 글입니다. List 데이터를 일직선으로 나열한 형태 추가/삭제는 쉽지만 원하는 데이터에 접근하려면 시간이 많이 걸림. 각 데이터에는 pointer가 존재, 다음 데이터의 메모리 위치 메모리 상의 연속된 위치에 저장하지 않아도 됨. Sequential Access(순차 접근) => 처음부터 순서대로 접근 => 탐색 시간이 오래 걸림. 추가/삭제 시 pointer만 변경 계산 시간 검색 => 접근하고자 하는 데이터가 가장 뒤에 있는 경우, 선형 탐색 => O(n) 추가 => 두 개의 pointer만 변경, n에 관계없음 => O(1) 원형 List 마지막 데이터의 pointer가 선두 데이터의 메모리 위치 가리킴 양방향 List 보통 poin..
이 글은 책 알고리즘 도감에서 알고리즘 기본 부분을 정리한 글입니다. What is Algorithm? 알고리즘은 계산이나 작업을 하기 위한 순서이다. IT관점에서는 특정 문제를 컴퓨터로 해결하기 위한 순서가 알고리즘이다. 계산 시간 같은 알고리즘을 사용하더라도 컴퓨터의 성능에 따라 시간이 달라진다. 따라서 계산 시간은 스텝 수를 활용한다. 계산을 종료하기까지 기본 스텝을 몇 회 실행했는가? Example. 선택 정렬 시간 구하기, 수열의 숫자 개수(n) 1) 수열에서 최솟값을 찾는다 2) 최솟값을 수열의 가장 왼쪽 숫자와 교환 -> 다시 1번으로! Explain. 1) '하나의 숫자를 확인한다' -> 기본 단위 -> 걸리는 시간 T1 2) 1번 동작 걸리는 시간 -> n*T1 3) '두개의 숫자를 교환..