일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인프런
- UserDefaults
- 동기화
- IOS
- 오브젝트
- Swift
- 앨런
- 비동기
- decode
- 데드락
- SwiftUI
- core data
- 운영체제
- 프로세스 스케줄링
- Codable
- 동시성
- Algorithm
- struct
- 알고리즘
- Apple Developer Academy
- @state
- 가상 메모리
- 파일 시스템
- async
- forEach
- 100 days of SwiftUI
- deadlock
- 상호배제
- Linked List
- COLOR
- Today
- Total
목록Algorithm (14)
기어가더라도 제대로
먼저 우선순위 큐, 이는 자료구조가 아닌 개념이다. FIFO인 큐와 달리 우선순위가 높은 정점부터 배출한다. 힙은 이 우선순위 큐를 구현하기 위해 가장 적합하다. 정의 이진 트리 형태를 가지며 우선 순위가 높은 요소가 먼저 나가기 위해 요소가 삽입, 삭제 될 바로 정렬 되는 특징이 있다. 힙 != 우선순위 큐 특징 우선순위가 높은 요소가 먼저 나가는 특징을 가진다. 루트가 가장 큰값이 되는 최대 힙(Max Heap)과 루트가 가장 작은 값이 되는 최소힙(Min Heap) 이 있다. 요소 추가 요소가 추가될 때는 트리의 가장 마지막에 정점에 위치한다. 추가 후 부모 정점보다 우선순위가 높다면 부모 정점과 순서를 바꾼다. 이 과정을 반복하면 결국 가장 우선순위가 높은 정점이 루트가 된다. 완전 이진 트리의 ..
사물함의 각 칸에 이름과 번호가 있어서 바로 찾기가 쉽듯, 해시 테이블도 키를 인덱스로 변환하여 값을 넣는다. 정의 키와 값을 받아 키를 해싱(Hashing)하여 나온 index에 값을 저장하는 선형 자료구조 삽입은 O(1)이며 키를 알고 있다면, 삭제, 탐색도 O(1) 로 수행한다. 키를 잘게 잘라 인덱스로 만들어 사용한다는 것이 비슷하다. 해시 함수는 입력 받은 값을 특정 범위 내 숫자로 변경하는 함수 특별한 규칙이 있는 것은 아니다. 해시 충돌 Hash Collision 해시 충돌이란, 키값을 인덱싱한 결과 서로 다른 키지만, 인덱스 값이 같은 경우, 해시 충돌이라고 한다. 1. 선형 탐사법 충돌이 발생하면 옆으로 한 칸 이동한다. 2. 제곱 탐사법 충돌이 발생하면 충돌이 발생한 횟수의 제곱만큼 옆..
선형 자료 구조의 일종 Last In First Out이라는 개념을 가진 선형 자료 구조. 바닥이 막힌 상자를 생각하면 편하다. 가장 위의 자료는 Top 이라고 부른다. 사일로와 프링글스의 형태를 생각하면 된다. Push - 스택에 최상단에 자료를 넣음 POP - 스택의 최상단의 자료를 뺌 ## 활용예 - 스택 메모리 링크드리스트에서 헤드를 탑으로 지정하고 제거 및 추가하는 로직을 오직 헤드에서만 하면 링크드 리스트로 스택을 구현 가능하다.