[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

분류 전체보기 495

[RxSwift] RxCocoa로 TableView 구현하기

안녕하세요 이누입니다. 오늘은 RxCocoa를 기반으로 TableView를 구현하는 방법에 대해 정리해보았습니다. 개인적으로 UITableViewDataSource같은 Protocol을 채택하고 구현하지 않아도 되어서 좋더라구요! 그럼 시작합니다. RxCocoa - TableView 구현 기존에 TableView의 Cell을 구현하기 위해서는 UITableViewDelegate 객체 활용이 필수적이었습니다. 하지만 RxCocoa를 활용하면 DataSource 없이 메서드를 기반으로 Cell 구현이 가능합니다. RxCocoa의 UITableView+Rx.swift를 살펴봅시다 public func items (_ source: Source) -> (_ cellFactory: @escaping (UITab..

[알고리즘 연습] 자물쇠와 열쇠 (프로그래머스 lv3, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 import Foundation func solution(_ key:[[Int]], _ lock:[[Int]]) -> Bool { var key = key let n = lock.count let m = key.count // key를 돌리는 함수 func rotate() { var newKey = [[Int]]() for x in 0..

[알고리즘 연습] 표 편집 (프로그래머스 lv3, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 풀이1 (시간초과) func solution(_ n:Int, _ k:Int, _ cmd:[String]) -> String { var arr = Array(repeating: true, count: n) var index = k var stack = [Int]() for ca in cmd { let c = ..

[알고리즘 연습] 전력망을 둘로 나누기 (프로그래머스 lv2, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/86971# 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 풀이 import Foundation func solution(_ n:Int, _ wires:[[Int]]) -> Int { var connect = Array(repeating: Array(repeating: false, count: n+1), count:n+1) wires.forEach { connect[$0[0]][$0[1]] = true connec..

[iOS Design Pattern] Factory Method

Factory Method Pattern Factory 패턴은 객체를 생성하는 모듈인 'Factory'를 만들어놓고 요청에 따라 객체를 생성하는 패턴입니다. Factory Method 패턴은 어떤 객체의 인스턴스를 생성할지 서브 클래스에서 결정하도록 합니다. 객체 생성을 처리하는 팩토리를 프로토콜로 관리하여 실질적인 생성을 캡슐화하는 것이 가능합니다. 일반적으로 Creator, Concrete Creater, Product, Concrete Product로 구성됩니다. Creator에서는 추상적 정보만 파악하고 있고, Concrete Creator에서 객체 생성에 대한 결정을 수행합니다. 아래는 간단한 구현예시입니다. // Product protocol Product { func hello() } Pro..

🍎 Apple/Patterns 2022.04.26

[Swift] 순열과 조합 구현

지난 포스팅에서 Queue를 구현해봤는데요 알고리즘 문제에는 순열 및 조합도 가끔 쓰이죠! 그래서 이번엔 순열과 조합을 구현해봤습니다. 순열 (Permutation) 순열은 전체에서 중복없이 순서를 고려해 n개를 배열하는 경우의 수입니다. 해당 특성에 맞게 DFS를 사용해 접근했습니다. 따라서 Stack과 재귀함수 둘 모두를 사용할 수 있습니다. Stack 사용 func permutation(_ array: [T], _ n: Int) -> [[T]] { var result = [[T]]() if array.count < n { return result } var stack: [([T], [Bool])] = array.enumerated().map { var visited = Array(repeating:..

🍎 Apple/Swift 2022.04.25

[Swift] Queue (Deque) 구현

최근 Swift로 알고리즘 문제를 해결하고 있습니다. 그런데 Swift에는 Queue(Deque)가 없어 종종 불편할 때가 있더라구요 그래서 한번 직접구현해봤습니다. Swift로 구현한다는 것에 목적이 있는 포스팅이기 때문에 Queue와 Deque에 대한 설명은 생략하겠습니다. 참고 : https://velog.io/@seri_ous/Swift-%ED%81%90-Swift-Algorithm-Club-%EB%B2%88%EC%97%AD 구현 class Queue { var array: [T?] var head = 0 var isEmpty: Bool { return count == 0 } var count: Int { return array.count - head } var first: T? { if isEm..

🍎 Apple/Swift 2022.04.25

[알고리즘 연습] 방금그곡 (프로그래머스 lv2, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 풀이 func solution(_ m:String, _ musicinfos:[String]) -> String { func change(_ melody: String) -> String { var melody = melody melody = melody.replacingOccurrences(of: "A#", with: "a") melody = ..

[UIKit] dequeueReusableCell (withIdentifier:for:) vs (withIdentifier:)

tableView에서 Cell을 재사용하기 위해 사용되는 메서드인 dequeueReusableCell에는 두가지 형태가 있습니다. dequeueReusableCell(withIdentifier:for:)과 dequeueReusableCell(withIdentifier:)가 그것인데요. 이 두 메서드의 정확한 차이는 무엇일까요? 하나는 indexPath를 함께 파라미터로 받고 있고, 하나는 받지 않고 있습니다. 두 메서드의 기능이 똑같다면 굳이 indexPath 넣어주는 메서드를 사용할 필요가 있을까요? 무언가 특별한 기능이 있으니까 사용하는 것 아닐까요? 일단 애플 공식문서 찾아보기 일단 문서의 글을 읽어봅시다. func dequeueReusableCell(withIdentifier:for:) : reu..

🍎 Apple/Question 2022.04.18

[UIKit] UITableView 기초부터 다시 살펴보기

안녕하세요 이누입니다. UITableView, UICollectionView 둘다 상황에 따라 많이 사용하는 View죠. 그런데 저는 지금까지 프로젝트에서 적용하기에만 급급해서인지 사용과정 및 원리가 머릿속에서 정리되어 있다는 느낌이 없었습니다. 그래서 이번기회에 둘 다 정리를 해보려고 합니다. 오늘은 먼저 TableView입니다! 이번 포스팅은 쓰다보니 좀 길어져서 목차도 첨부합니다. 아래 순서대로 설명할거예요. UITableView란? UITableView 생성하기 UITableViewCell, UITableViewDataSource Cell Reuse? UITableViewDelegate (이하 내용은 모두 코드베이스를 기준으로 설명되어 있습니다.) 1. UITableView란? iOS의 UITab..

🍎 Apple/UIKit 2022.04.17
반응형