분류 전체보기303 [Swift] Codility Lesson1 - BinaryGap 문제 A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binar.. 2022. 7. 23. [알고리즘] 그래프 알고리즘 그래프(Graph) 노드(Node)와 노드 사이에 연결된 간선(Edge)의 정보를 가지고 있는 자료구조 서로 다른 개체(혹은 객체)(Object)가 연결되어 있다는 문제는 그래프 알고리즘 떠올리기 그래프 구현 방법 인접 행렬(Adjacency Matrix) : 2차원 배열 사용 메모리 공간이 많이 필요하지만 특정 노드 간 간선의 비용을 O(1) 시간으로 즉시 알 수 있음 인접 리스트 (Adjacency List) : 리스트 사용 간선의 개수인 O(E) 만큼만 메모리 공간이 필요하지만 O(V) 시간 소요 그래프 트리 방향성 방향 그래프 혹은 무방향 그래프 방향 그래프 순환성 순환 및 비순환 비순환 루트 노드 존재 여부 루트 노드가 없음 루트 노드가 존재 노드간 관계성 부모와 자식 관계 없음 부모 자식 관계.. 2022. 4. 14. [UIKit] UITableView UITableView @MainActor protocol UITableViewDataSource 테이블 뷰는 리스트 형태이며, UIScrollView를 상속받아 수직 스크롤이 가능합니다. 테이블의 개별 항목을 구성하는 셀을 UITableViewCell 객체이며, 이를 사용하여 테이블에 행을 그립니다. 테이블 뷰는 각각 자체 행이 있는 0개 이상의 섹션으로 구성되며, 섹션은 테이블 뷰 내에서, 행은 섹션 내에서 인덱스 번호로 식별됩니다. 원하는 섹션 앞에 섹션 Header를 붙일 수 있으며, 선택적으로 섹션 Footer를 선택할 수 있습니다. UITableViewCell @MainActor class UITableViewCell : UIView UITableViewCell 객체는 단일 테이블 행의 내용을 .. 2022. 4. 1. [알고리즘] 최단 경로(Shortest Path) 최단 경로(Shortest Path) 알고리즘 가장 짧은 경로를 찾는 알고리즘 길 찾기 문제라고도 불림 그래프를 이용하여 표현 각 지점은 노드로 표현 지점과 연결된 도로는 간선으로 표현 최단 경로 문제의 종류 단일 출발(single-source) 최단 경로 어떤 하나의 정점에서 출발하여 나머지 모든 정점까지의 최단 경로를 찾는 문제 단일 도착(single-destination) 최단 경로 모든 정점에서 출발하여 어떤 하나의 정점까지의 최단 경로를 찾는 문제 그래프 내의 간선을 뒤집으면 단일 출발 최단거리 문제로 바뀔 수 있음 단일 쌍(single-pair) 최단 경로 모든 정점 쌍들 사이의 최단 경로를 찾는 문제 주요 알고리즘 다익스트라(Dijkstra) 알고리즘 벨만-포드(Bellman-Ford-Moo.. 2022. 3. 31. [UIKit] UIView(3) 서브 클래싱 노트 UIView 클래스는 시각적 콘텐츠와 더불어 유저 상호작용 제공을 위한 중요한 서브 클래싱 지점입니다. view를 상속받는 것은 view를 구현하고 성능을 조정하기 위해 더 많은 작업들이 필요합니다. 따라서 UIView클래스가 제공하지 않는 것이 있을 때만 구현하는 것이 좋습니다. 오버라이드 할 함수들 UIView를 상속받을 때 반드시 오버라이드 해야 하는 소수의 메서드들이 있고, 필요에 따라 오버라이드 할 수 있는 메서드들도 있습니다. UIView는 유연하게 설정 가능한 클래스이기 때문에 커스텀 메서드를 오버라이드 하지 않고 정교한 뷰 동작으로 구현할 수 있습니다. 다음은 UIView 클래스를 상속받으면 오버라이드 할 수 있는 메서드 들입니다. 초기화 init(frame:): 이 방.. 2022. 3. 30. [알고리즘] 다이나믹 프로그래밍(Dynamic Programming) 컴퓨터를 활용해도 어려운 문제 최적의 해를 구하기에 시간이 매우 많이 필요한 문제 최적의 해를 구하기에 메모리 공간이 매우 많이 필요한 문제 컴퓨터는 연산 속도에 한계가 있고, 메모리 공간을 사용할 수 있는 데이터의 개수도 한정적이라 많은 제약 발생 ☞ 연산 속도와 메모리 공간을 최대한으로 활용할 수 있는 효율적인 알고리즘 작성 필요 다이나믹 프로그래밍(Dynamic Programming) 동적 계획법 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법 메모리 공간을 약간 더 사용하면 연산 속도를 비약적으로 증가시킬 수 있는 방법 다이나믹 프로그래밍은 다음 조건을 만족할 때만 사용 가능 큰 문제를 작은 문제로 나눌 수 있다. 작은 문제에서 구한 정답은 그것을 .. 2022. 3. 30. [UIKit] UIView(2) View 생성하기 일반적으로 스토리보드에 뷰를 만들 때는 라이브러리로부터 캔버스에 끌어다 놓아서 만듭니다. 프로그래밍 방식으로도 생성할 수 있습니다. 뷰를 생성할 때 일반적으로 미래의 super 뷰를 기준으로 초기 크기와 위치를 지정합니다. 다음 코드는 뷰를 생성하고 super 뷰의 좌표계에 있는 점(10, 10)에 왼쪽 상단 모서리를 배치합니다. let rect = CGRect(x: 10, y: 10, width: 100, height: 100) let myView = UIView(frame: rect) 다른 뷰에 하위 뷰를 추가하려면 super 뷰에서 addSubView(_:) 메서드를 호출하세요. 뷰에 하위 뷰를 여러 개 추가할 수 있으며 iOS에서는 형제 뷰가 서로 겹쳐있을 수 있습니다. addS.. 2022. 3. 28. [UIKit] UIView(1) View는 앱 사용자 인터페이스의 기본 구성 요소이며 UIView 클래스는 모든 view에 공통적인 동작을 정의합니다. view 객체는 사각형 내에서 콘텐츠를 렌더링하고 해당 콘텐츠와의 모든 상호작용을 처리합니다. UIView 클래스는 인스턴스화하고 고정된 배경색을 표시하는 데 사용될 수 있는 구상 클래스입니다. 더 정교한 컨텐츠를 그리기 위해서 서브클래스화할 수도 있습니다. 앱에서 흔히 볼 수 있는 label, image, button 및 기타 인터페이스 요소를 표시하려면 직접 정의하기보다는 UIKit 프레임워크에서 제공하는 뷰 하위 클래스를 사용하세요. view 객체는 앱이 사용자와 상호작용하는 주된 방식이기 때문에 여러 가지 책임이 있습니다. 다음은 몇 가지 예입니다. 그리기와 애니메이션 뷰는 UI.. 2022. 3. 25. [알고리즘] 이진 탐색(Binary Search) 순차 탐색(Sequential Search) 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 하나씩 차례대로 확인하는 방법 정렬 여부와 상관없이 가장 앞에서부터 하나씩 확인 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용 리스트 내에 데이터가 아무리 많아도 시간만 충분하다면 항상 원하는 데이터를 찾을 수 있음 시간 복잡도 → O(N) 이진 탐색(Binary Search) 탐색 범위를 절반씩 좁혀가며 데이터를 탐색 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교하여 원하는 데이터 탐색 위치를 나타내는 시작점, 끝점, 중간점 3개의 변수 사용 배열 내부의 데이터가 정렬되어 있어야만 사용 가능 시간 복잡도 → O(logN) 트리 자료구조 더보기 트리(Tree) 구조 노드와 노드의 연.. 2022. 3. 25. [UIKit] UIApplication UIApplication iOS에서 실행되는 앱의 제어와 조정의 중심점 선언 @MainActor class UIApplication : UIResponder 모든 iOS 앱에는 단 하나의 UIApplication 인스턴스가 존재합니다. 앱이 시작되면 시스템은 UIApplicationMain(_: _: _: _:) 함수를 호출합니다. 이 함수는 UIApplication 객체의 싱글턴을 생성하는 작업을 합니다. 그다음 shared 클래스 메서드를 호출해 싱글턴 객체에 접근할 수 있습니다. application 객체의 주요 역할은 사용자 이벤트로부터의 초기 라우팅을 처리하는 것입니다. application 객체는 UIControl 클래스의 인스턴스인 control객체가 전달한 action 메시지를 target.. 2022. 3. 24. 이전 1 ··· 26 27 28 29 30 31 다음 반응형