swift 172

[Swift] 프로그래머스 LV2. 주차 요금 계산

프로그래머스 LV2. 주차 요금 계산 ✅ 프로그래머스 LV2. 주차 요금 계산 2022 KAKAO BLIND RECRUTMENT 문제다! 카카오 문제를 풀때는 그냥 이름만으로도 늘 짜릿해. ✅ 코드 레벨은 2지만 풀었을 때 점수는 1점만 주더라. 그만큼 쉬웠다는 말이겠지 ㅜㅠ 근데 진짜 쉽긴 했다... import Foundation func solution(_ fees:[Int], _ records:[String]) -> [Int] { var dict: [String: String] = [:] // 차량번호 : 시간 var totalTimeArray: [String: Int] = [:] // 차량번호 : 누적시간 var priceDict: [String: Int] = [:] // 차량번호 : 금액 //..

[Swift] Memento Pattern

Memento Pattern ✅ Memento Pattern 아래의 문서를 구입하여 영어 문서를 번역하고 이해한 것을 바탕으로 글을 작성하고 있습니다. https://www.raywenderlich.com/books/design-patterns-by-tutorials/v3.0/chapters/7-memento-pattern Design Patterns by Tutorials, Chapter 7: Memento Pattern The memento pattern allows an object to be saved and restored. you can use this pattern to implement a save game system, where the originator is the game state..

[Swift] 프로그래머스 LV2. 큰 수 만들기

프로그래머스 LV2. 큰 수 만들기 ✅ 이 문제는 정말 오랜기간 도전을 하여 풀어냈다. (첫 도전) 2021/08/08 (두번째 도전) 2021/11/18 (세번째 도전) 2022/04/13 알고리즘 공부하다가 귀찮아서 계속 미뤘고, 자꾸 미루다가 결국 해야할 것 같아서 풀어냄! 이거 머릿속으로는 이해가 되는데, 구현하기가 너무 어려웠다. ✅ 첫 도전 첫 도전에서의 코드 아래 사진을 보면 알겠지만 시간 초과로 fail // // main.swift // algorithm // // Created by Hamlit Jason on 2021/08/08. // /* 큰 수 만들기 https://programmers.co.kr/learn/courses/30/lessons/42883 실패 */ import Fou..

[Swift] 프로그래머스 LV2. 쿼드 압축 후 개수 세기

프로그래머스 LV2. 쿼드 압축 후 개수 세기 ✅ 문제를 보자마자 재귀로 해야한다고 생각이 들었음. 예전에 학교 수업에서 자료구조 알고리즘 시간에 divide and conquer로 문제를 풀었던 기억이 있는데, 그래서 이를 활용함. 근데 그때는 작은 문제에서 큰 문제로 갔었고, 이번에는 큰 문제에서 작은 문제로 내려가야 했음. ✅ 코드 // https://programmers.co.kr/learn/courses/30/lessons/68936 import Foundation struct p68936 { static func run() { print(p68936.solution([[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]])) // [4,9] } static var zeroCo..

[Swift] Strategy Pattern

Strategy Pattern ✅ Strategy Pattern 아래의 문서를 구입하여 영어 문서를 번역하고 이해한 것을 바탕으로 글을 작성하고 있습니다. https://www.raywenderlich.com/books/design-patterns-by-tutorials/v3.0/chapters/5-strategy-pattern Design Patterns by Tutorials, Chapter 5: Strategy Pattern The strategy pattern defines a family of interchangeable objects that can be set or switched at runtime: the object using a strategy, the strategy protocol..

[Swift] Delegation Pattern

Delegation Pattern ✅ Delegation Pattern 아래의 문서를 구입하여 직접 번역 및 정리합니다. https://www.raywenderlich.com/books/design-patterns-by-tutorials/v3.0/chapters/4-delegation-pattern Design Patterns by Tutorials, Chapter 4: Delegation Pattern The delegation pattern enables an object to use another “helper” object to provide data or perform a task rather than the task itself. By relying on a delegate protocol i..

[Swift] 플로이드 워셜 알고리즘

플로이드 워셜 알고리즘 ✅ 플로이드 워셜 알고리즘 이번 알고리즘 코드는 나동빈 책을 기반으로 공부하고, swift로 제 이해를 바탕으로 직접 코드를 작성하였습니다. 따라서 성능 및 코드 검증이 완벽하지 않아서 오류가 있을 수도 있습니다. 오류가 있다면 댓글로 제보해주세요! 다익스트라 : 한 지점에서 다른 특정 지점까지 - 그리디에 속함 플로이드 워셜 : 모든 지점에서 다른 모든 지점까지 - dp에 속함 시간복잡도는 O(N^3)이다. ✅ 코드 import Foundation /// 정점간의 연결관계, 가중값, 정점의 개수 func FloydWarshall(graph: [[Int]], weight: [Int], n: Int) -> [[Int]] { var node = [[Int]](repeating: [In..

[Swift] Dijkstra 알고리즘

Dijkstra 알고리즘 ✅ Dijkstra 알고리즘을 구현해보자. 이번 포스팅에서는 스위프트 데이터 구조와 알고리즘 책과 나동빈 파이썬 알고리즘 책 그리고 다른 분의 포스팅을 참고하여 작성하였음. 이거 예전에 손을 풀때는 참 이해도 쉽고 그랬는데, 알고리즘 공부 놓고 다시 시작하려니까 어려웠음. 근데 그냥 상당히 집중이 안되는 시기인 것 같다. 아래의 그래프를 다익스트라 알고리즘을 손으로 분석해보자. 나동빈 책에 따르면 다익스트라 알고리즘과 플로이드 워셜 알고리즘을 소개해주는데 둘의 차이를 분석해보자. 다익스트라 알고리즘 : 한 지점에서 각각의 특정 지점까지의 최단 경로 - 그리디에 속함 플로이드 워셜 알고리즘 : 모든 지점에서 다른 모든 지점까지의 최단 경로 - dp에 속함 간선의 개수 : E 노드의..

[Swift] MVC Pattern

MVC Pattern ✅ MVC Pattern (참고) 아래의 글을 직접 해석하고 이해를 바탕으로 작성하였습니다. (오역이 있을 수도 있습니다.) https://www.raywenderlich.com/books/design-patterns-by-tutorials/v3.0/chapters/3-model-view-controller-pattern Design Patterns by Tutorials, Chapter 3: Model-View-Controller Pattern The model-view-controller (MVC) pattern separates objects into three distinct types: models, views and controllers! MVC is very common..

[Swift] Class Diagram + 스터디

Swift Class Diagram ✅ 아래 글과 디자인패턴 스터디를 기반으로 작성하였습니다. https://www.raywenderlich.com/books/design-patterns-by-tutorials/v3.0/chapters/2-how-to-read-a-class-diagram Design Patterns by Tutorials, Chapter 2: How to Read a Class Diagram You may have heard of Unified Modeling Language, which is a standard language for creating class diagrams, architectural drawings and other system illustrations. A com..