-
알고리즘) 백준 7562번 나이트의 이동 Swift🧑💻/Algorithm 2021. 5. 11. 19:07
www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 예제 입력 출력 3 8 0 0 7 0 100 0 0 30 50 10 1 1 1 1 5 28 0 문제 접근 예제를 살펴봅시다. 길이가 8이고 (0, 0)에서 (7, 0)으로 가는 방법은 이렇습니다. 하지만 다르게 가는 방법도 물론 존재합니다. (0, 0) -> (2, 1) -> (4, 2) -> (6, 1) -> (8, 2) -> (7, 0) 다시 문제로 돌아와서, 나이트가 이동할 수 있는 지점은 기준점으로부터 1..
-
알고리즘) 백준 13305번 주유소 Swift🧑💻/Algorithm 2021. 5. 10. 19:28
www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 예제 입력 출력 4 2 3 1 5 2 4 1 18 4 3 3 4 1 1 1 1 10 5 3 2 1 4 5 8 9 4 1 46 문제 접근 문제의 포인트는 가장 저렴한 주유소에서 충전하여 최대한 많은 거리를 가는 것입니다. 문제 속 예제를 로직화 해보았습니다. 0번째 : 최소 비용이 5원이므로 5원 * 2km 를 가야 합니다. 1번째 : 최소 비용이 5원에서 2원으로 변경됩니다. 2원 * 3km 를 ..
-
디자인패턴 - MVC, MVP, MVVM🧑💻/Swift 2021. 5. 10. 15:39
디자인 패턴은 3가지로 구분됩니다. 1. 구조 디자인 패턴 : 객체가 어떻게 결합되고 구성되는지 설명합니다. MVC, MVVM 등이 있습니다. 2. 행위 디자인 패턴 : 객체의 통신 방법을 설명합니다. Delegation, Strategy, Observer 등이 있습니다. 3. 생성 디자인 패턴 : 객체를 생성하거나 인스턴스화 하는 방법을 설명합니다. Builder, Singleton, Prototype 등이 있습니다. 이 중 구조적 디자인 패턴(Structural Design Pattern)에 대해 알아보겠습니다. MVC 패턴 : Model-View-Controller Model : 데이터를 구성하는 틀. struct, class 등 View : 화면에 표시되는 요소나 제어. UIView의 subcla..
-
iOS의 메모리 관리 - strong / weak / unowned🧑💻/Swift 2021. 5. 8. 17:36
iOS의 메모리 관리 ARC(Automatic Reference Counting) 컴파일 시 자동으로 retain, release 코드를 추가해 줍니다. 인스턴스가 생성되면 정보를 저장하기 위해 메모리를 힙에 할당합니다. 인스턴스를 참조하는 프로퍼티의 갯수(retain count)를 체크하고, 참조 횟수가 0이 되면 메모리에서 해제합니다. strong vs weak vs unowned strong (default) weak unowned 구분 강한 참조 약한 참조 약한 참조 / 미소유 참조 소유권 O X X 참조 시 retain count 증가 O X X optional non-optional 메모리 해제 retain count가 0이면 해제됨. 객체를 추적하여 해제 시 nil로 변경 해제 후 참조 시 ..
-
Cocoa Framework vs Cocoa Touch Framework 차이점🧑💻/Objective C 2021. 5. 4. 21:50
이름은 비슷하지만 크게 다른 Cocoa Framework와 Cocoa Touch Framework의 차이를 비교해 보겠습니다. Cocoa Framework macOS 앱 개발에 쓰이는 Cocoa Framework 개념이 먼저 나오고, 이후 iOS 환경에 맞춘 Cocoa Touch Framework가 생겼습니다. 실제로 Cocoa.framework의 정의를 살펴보면 다음과 같습니다. import AppKit import CoreData import Foundation AppKit, CoreData, Foundation에 대해 알기 위해서는 macOS의 기초 구성 계층도를 먼저 이해해야 합니다. macOS를 구성하는 계층은 5가지로 나뉩니다. 1. Cocoa (Application) : 앱의 사용자 인터페이..