일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- httpcookie
- 쿠키
- 스위프트
- WWDC
- 데이터장소
- wwdc24\
- atlasian
- 알고리즘
- infoplist
- xcode
- Swift
- BFS
- navigationaction
- 연결
- decidepolicyfor
- 24
- 옆집
- scenedelegate
- 애러처리
- om-4ti
- 데이터구조
- 빝버켓
- swiftdata
- 콜드픽스
- JSON
- dfs
- 빗버켓
- 2024
- IOS
- persistence
- Today
- Total
목록2025/03 (7)
내가 iOS 개-발자라니.
오늘은 딕셔너리 타입 해시 테이블에 대해서! 7. 해시 테이블과 해시 함수(Hash)해시함수: 입력(또는 키)을 받아 고정 크기의 문자 문자열을 생성하는 수학적 알고리즘으로, 이는 해시된 값을 나타낸다. 해시 함수의 주요 목표는 충돌을 최소화하기위해 사용 가능한 배열 위치에 키를 효율적으로 분산시키는 것이다.분할 메서드: 키를 해시 테이블의 크기(m)로 나누고 나머지를 해시 값으로 사용한다. 해시 테이블의 크기가 소수일 때 잘 작동한다. hashValue = key % m곱셈 메서드: 일정한 배수(A)를 키와 곱하고, 결과의 소수 부분을 해시 값으로 사용한다. 곱셈 메서드는 분할 메서드보다 키의 더 균일한 분포를 제공한다. hashValue = floor(m * (key * A % 1))폴딩 메서드: 키..
주말 잘 쉬고 그래프로 월요일을 시작합니다. 6. 그래프(Graph)그래프에 대하여코딩에서 그래프는 상호 연결된 노드의 집합을 나타내는 데이터구조이다. 노드는 정점(vertice)이라고도 하며 이들간의 관계를 정의하는 정적선(edge)로 연결될 수 있다.그래프의 종류무방향 그래프: 엣지(edge, 정적선)가 특정 방향을 가지지 않고 단순히 두개의 정점간에 연결을 나타낸다.방향 그래프: 엣지가 특정 방향을 가진다. 정점1이 정점2에 연결되어있다고 해서 반드시 정점2가 정점1에 연결되어 있다는 것을 의미하지 않는다. 방향그래프의 엣지는 종종 화살표로 표시된다.가중 그래프: 각 엣지에 가중치 또는 비용을 부여한다. 이러한 가중치는 거리, 용량 또는 비용과 같은 다양한 속성을 나타낼 수 있다. 예를 들어, 교통..

오늘은 트리~ 5. 트리(Tree)트리에 대하여트리는 파일 시스템, 계층적 데이터 및 검색 알고리즘과 같은 다양한 응용 프로그램에서 사용되는 기본 데이터 구조이다.트리는 간선으로 연결된 노드로 구성된 계층적 데이터 구조이다.트리의 각 노드는 0개 이상의 자식 노드를 가질 수 있다.트리의 노드는 루트에서 트리의 다른 모든 노드로 가는 경로가 있도록 구성된다.트리의 유형이진 트리: 각 노드가 최대 2개의 자식 노드를 가질 수 있는 트리의 일종으로, 일반적으로 왼쪽 자식과 오른쪽 자식으로 불린다. 단순성과 구현의 용이성을 가지고 있다.이진 탐색 트리(BST): 왼쪽 자식의 값이 부모 노드보다 작고, 오른쪽 자식의 값이 부모 노드보다 큰 이진 트리이다. 이 속성 덕분에 효율적인 검색, 삽입 및 삭제 작업이 가능..
오늘은 스위프트로 연결리스트를 만들어봤다. 4. 연결 리스트(Linked List)연결 리스트에 대하여노드: 연결리스트는 노드로 구성되며 각 노드는 아래에 2가지 구성 요소를 포함한다. 리스트에서 첫번째 노드는 헤드(head)라고 하고, 마지막 노드는 테일(tail)이라고 한다. 테일노드는 nil을 가리켜 리스트의 끝을 나타낸다. 노드의 구성 요소:데이터: 노드가 보유하는 값 또는 데이터다음(Next): 리스트에서 다음 노드에 대한 참조 또는 포인터연결 리스트 유형단일 연결 리스트: 각 노드가 리스트의 다음 노드에만 참조 eg. 노드1 → 노드2 → 노드3 → nil이중 연결 리스트: 각 노드는 다음 노드와 이전 노드 모두에 대한 참조 eg. 노드1 ↔ 노드2 ↔ 노드3 → nil원형 연결 리스트: 테..
오늘은 스택과 큐!솔직히 현업에서 많이 안썼지만 개념은 알아두면 좋다. 스위프트로 해보자,3. 스택과 큐스택(stack): LIFO(Last In First Out, 후입선출)// swift에서는 배열이나 연결 리스트를 이용하여 스택 구현함// 일단 배열을 이용하여 스택 구현(구조체를 이용)struct Stack { private var elements: [Element] = [] // 요소 추가 mutating func push(_ element: Element) { elements.append(element) } // 마지막에 추가된 요소를 빼고 나머지 반환(스택이 비어있을 경우 nil 반환) mutating func pop() -> Element? { return elements.popLast..
내용을 다시 생각하면서 현업에서 더 자주쓰이는 것만 사용해보는게 어떨까 생각해봤다.물론 내 기준 현업이다.2. 문자열문자열 생성// 기본 초기화let message = "Hello, world!"let numberString = String(42) //"42"let emptyMessage: String?let anotherEmptyMessage = String()// 이스케이프 시퀀스: '\\'를 앞에 포함해서 특수문자와 줄 바꿈 포함 let message = "\\"Hello, world!\\""문자열 조작let oneString = "One"let twoString = "Two"let jabString = "Jab, "// '+'연산자나 '+='연산자를 이용하여 문자열 수정let oneTwoStrin..
나는 스위프트를 잘 알고있는가?너무 기초이지만 정리한번 해볼까? 데이터구조와 알고리즘을 스위프터에 입장에서 정리한번 해보려 한다. 생각하며 적어가려니 목차는 모르겠다.일단 배열1. 배열(Array)배열 생성// 대괄호를 사용하여 기본 생성let fruits = ["apple", "banana", "orange"]// 초기자를 사용하여 생성let numbers = Array(repeating: 0, count: 5)배열 접근// 첫번째는 0의 인덱스를 가짐let fruits = ["apple", "banana", "orange"]let fristFruit = fruits[0] //"apple"let secondFruit = fruits[2] //"orange"배열 수정// 추가, 제거, 삽입, 반전var ..