전체 글 (39) 썸네일형 리스트형 자료구조 - Heap (1) 기본 C언어로 쉽게 풀어쓴 자료구조를 읽으며 정리Priorty Queue우선순위를 가진 항목들을 저장하는 큐FIFO 순서가 아니라 우선순위가 높은 데이터가 먼저 나가게 됨응용분야시뮬레이션 시스템 (여기서의 우선순위는 대개 사건의 시각)운영 체제에서의 작업 스케줄링네트워크 트래픽 제어시간복잡도우선순위 큐는 배열로 구현할 수도 있고 연결 리스트로 구현할 수도 있지만시간 복잡도 면에서 가장 좋은 방법은 힙(Heap)으로 구현하는 것이다.표현 방법삽입삭제배열 (정렬)O(1)O(n)배열 (비정렬)O(n)O(1)연결 리스트 (정렬)O(1)O(n)연결 리스트 (비정렬)O(n)O(1)트리(heap) (부분정렬)O(logn)O(logn) Heap힙은 여러 개의 값들 중에서 가장 큰 값이나 가장 작은 값을 빠르게 찾아내도록 만.. Concurrency (5) Intermediate async/await & Checked Continuation 이전글 - Concurrency(4) Custom Asynchronous Sequences With AsyncStream Modern Concurrency in Swift 를 읽고 간단 정리 이전 글에서 NotificationCenter 처럼 기존 API에 async/await을 적용하는 것을 살펴보았다.이번 글에서도 이어서 기존 코드들에 Swift Concurrency를 활용하는 방안에 대해 소개 ! Introducing Continuations이전 애플의 주요한 비동기 방식completion callbacksdelegate --> continuation을 활용하여 Swift 동시성 모델로 전환할 수 있다 ! Continuation특정 시점에 프로그램의 상태를 추적하는 객체Swift 동시성 모델은 .. Swift 공식 문서 3. Strings and Characters (2) https://docs.swift.org/swift-book/documentation/the-swift-programming-language/stringsandcharacters Documentation docs.swift.org Swift 공식 문서 보면서 내 맘대로 정리 String Indices문자열의 인덱스와 String.Index 타입String에는 각 Character의 위치를 나타내는 String.Index 타입이 있다.Swift 문자열은 정수 값으로 직접 인덱싱할 수 없다.문자들이 차지하는 메모리 크기가 다를 수 있기 때문에, 특정 위치의 문자를 찾기 위해서는 문자열의 시작 또는 끝에서 부터 유니코드 스칼라를 하나씩 탐색해야 한다. startIndex와 endIndexstartIndex :.. Swift API Design Guidelines https://www.swift.org/documentation/api-design-guidelines/ Swift.orgSwift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.www.swift.org 최고의 컨벤션Fundamentals사용 지점에서의 명료함(Clarity)이 가장 중요한 목표이다.메서드, 프로퍼티는 한번 정의되지만 반복적으로 사용된다.API를 설계하면 이들을 명확하고 간결하게 만든다.설계를 평가할 때, 선언을 읽는 것 만으로는 불충분하다. 항상 사용성을 검토하여 문맥상 명확하게 이해되는지를 확인해야 한다.Cla.. Swift 공식 문서 3. Strings and Characters (1) https://docs.swift.org/swift-book/documentation/the-swift-programming-language/stringsandcharacters Documentation docs.swift.org Swift 공식 문서 보면서 내 맘대로 정리 Swift에서 문자열 및 문자 타입은 코드에서 텍스트를 유니코드 호환 방법으로 제공하고 문법적인 부분은 C와 비슷하다.Swift의 String은 Foundation 프레임워크의 NSString이 bridge된 타입이기 때문에 NSString의 메서드를 String에서 캐스팅 없이 사용이 가능하다.String Literals문자열을 여러줄에 쓰고 싶다면 """을 사용"""안의 문장 안에서 가독성을 위해 줄 바꿈 하고 싶지만, 문자열에.. Swift 공식 문서 2. Basic Operator https://docs.swift.org/swift-book/documentation/the-swift-programming-language/basicoperators Documentation docs.swift.org Swift 공식 문서 보면서 내 맘대로 정리Arithmetic OperatorsSwift의 산술 연산자는 오버플로우를 허용하지 않음. → 런타임 에러 발생오버플로우 연산자를 활용하면 오버플로가 발생했을 때 실행을 제어할 수 있다.Overflow OperatorsSwift에서 정수 상수나 변수를 특정 타입이 담을 수 없는 값으로 설정하면 오류 발생var potentialOverflow = Int16.maxpotentialOverflow += 1 오버플로우가 발생하더라도 사용 가능한 비트 .. Swift 공식 문서 1. The Basics https://docs.swift.org/swift-book/documentation/the-swift-programming-language/thebasics Documentation docs.swift.orgSwift 공식 문서 보면서 내 맘대로 정리Constant and Variables ( 상수와 변수)상수, 변수를 한 줄에 선언할 수 있다.var x = 0.0, y = 0.0, z = 0.0var red, green, blue : Double변수와 상수의 이름은 유니코드로 선언할 수 있다.let 😍 = "love"print 함수는 separator, terminator를 갖고 이들은 default 값을 다음과 같이 갖는다public func print(_ items: Any..., separat.. 자료구조 - 트리 C언어로 쉽게 풀어쓴 자료구조를 읽으며 정리트리트리는 데이터의 계층적 관계를 표현하는 비선형적 자료구조이다.노드와 간선으로 이루어져 있으며 사이클을 허용하지 않는 그래프의 한 종류이다. 트리 - 구성요소노드 : 트리를 구성하는 각 요소간선 : 트리를 구성하기 위해 노드와 노드를 연결하는 선루트 노드 : 트리 구조에서 최상위 노드단말 노드, 리프 노드 (Terminal Node, Leaf Node) : 하위에 다른 노드가 연결되어 있지 않은 노드내부 노드, 비단말 노드(Internal Node) : 단말 노드를 제외한 모든 노드 이진 트리루트노드를 중심으로 최대 두 개의 서브 트리로 나눠진다.나눠진 두 서브 트리 모두 이진 트리이다.서브 트리는 공집합일 수도 있다. (공집합도 이진 트리이다.) 트리의 각 .. 이전 1 2 3 4 5 다음