일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스위프트
- 쿠키
- decidepolicyfor
- 알고리즘
- 24
- dfs
- 연결
- atlasian
- infoplist
- om-4ti
- persistence
- 데이터장소
- 빝버켓
- navigationaction
- 옆집
- 2024
- scenedelegate
- BFS
- 데이터구조
- WWDC
- wwdc24\
- Swift
- 콜드픽스
- httpcookie
- IOS
- JSON
- 빗버켓
- swiftdata
- xcode
- 애러처리
- Today
- Total
목록This is da(大) SWIFT (18)
내가 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 ..
백그라운드로 보낸뒤 오랜 시간 동안 inactive 상태였지만 완전히 종료되지 않은채 켜지면 쿠키가 다른활동들에 밀려 웹뷰를 못불러오는 상황이 판단되었다. 그래서 SceneDelegate에 넣기위해 아래 HTTPCookieStorage Extension을 추가하고 값을 UserDefault에 저장해 다시 보내는 방식을 적용해 보았다. HTTPCookieStore Extension:import Foundationextension HTTPCookieStorage { // 현재의 쿠키값을 삭제 static func clear() { if let cookies = HTTPCookieStorage.shared.cookies { for cookie in cookies {..