๋ชฉ๋ก๐ฑ๐ iOS (62)
Bibi's DevLog ๐ค๐
Apple Developer Documentation reversed() ์ปฌ๋ ์ ์ ์์๋ฅผ ์ญ์์ผ๋ก ๋ํ๋ด๋ ๋ทฐ๋ฅผ ๋ฐํํ๋ค. func reversed() -> ReversedCollection ๋ฐฐ์ด์ ์์๋ฅผ ๋ค์ง์ ๋ ์ ์ฉํ๋ค String ๋ฌธ์์ด๋ ๋ฐฐ์ด์ด๋ฏ๋ก ๋ค์ง์ ์ ์๋ค. ๋ค๋ง ๋ฆฌํดํ์ ์ด ๋ฐฐ์ด์ด ์๋ ReversedCollection์ด๋ฏ๋ก, ํ์ํ๋ค๋ฉด Array๋ String์ผ๋ก ํ๋ณํ ํด์ฃผ์ด์ผ ํ๋ค. ์๋ ํ์ ์ผ๋ก ํ๋ณํํ๋ ค๋ฉด, ์ปฌ๋ ์ ์ sequence-based ๋๋ collection-based ์ด๋์ ๋ผ์ด์ ๋ฅผ ์ธ ์ ์์ด์ผ ๋ณํํ ์ ์๋ค. ReversedCollection์ ์ปฌ๋ ์ ์ ๋ํํ๊ณ , ์์์ ์ญ์์ผ๋ก ์ ๊ทผํ ์ ์๊ฒ ํด ์ค๋ค. let word = "Backwards" for char i..
https://github.com/bibi6666667/a-swift-tour/blob/main/bibi/bibi.md GitHub - bibi6666667/a-swift-tour Contribute to bibi6666667/a-swift-tour development by creating an account on GitHub. github.com ์ค์ํํธ ๊ณต์ ๋ฌธ์์ธ The Swift Programming Language Guide ์ค ์ผ๋ถ์ธ, WELCOME TO SWIFT LANGUAGE GUIDE - The Basics ์ ํ๊ตญ์ด ๋ฒ์ญ๋ณธ์ ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ํ์ตํ๋ฉฐ ๋ฒ์ญํ ๋ฌธ์๋ผ ์ด์ํ ๋ถ๋ถ ๋ฐ ์ค์ญ์ด ์์ ์ ์์ต๋๋ค. ๋ฐ๊ฒฌ ํ ์๋ ค์ฃผ์๋ฉด ํ์ธ ํ ์์ ํ๊ฒ ์ต๋๋ค๐
Queue๋ฅผ ๊ตฌํํ๋ ๋ค์ํ ๋ฐฉ์๋ค. Queue ๊ตฌํํ๊ธฐ - (1) ๋ฐฐ์ด ๊ฐ์ฅ ์ฝ์ง๋ง ๊ฐ์ฅ ์ถ์ฒํ์ง ์๋ ๋ฐฉ๋ฒ struct Queue: CustomStringConvertible { private var elements: [T] = [] public init() {} var isEmpty: Bool { elements.isEmpty } var peek: T? { elements.first } var description: String { if isEmpty { return "Queue is empty..." } return "---- Queue start ----\n" + elements.map({"\($0)"}).joined(separator: " -> ") + "\n---- Queue End ----..
๋ฐฐ์ด๋ก ๊ตฌํํ Swift์ Stack struct Stack { fileprivate var array: [Element] = [] var isEmpty: Bool { return array.isEmpty } var count: Int { return array.count } mutating func push(_ element: Element) { array.append(element) } mutating func pop() -> Element? { return array.popLast() } func peek() -> Element? { return array.last } } extension Stack: CustomStringConvertible { var description: String { le..
LinkedList ํ์ node(at:) : ๋ฆฌ์คํธ์ ํน์ ์์น์ ๋ ธ๋ ์ฐพ๊ธฐ. O(i) count() : ๋ฆฌ์คํธ์ ๋ ธ๋์ ์ ๋ฐํ. O(n) ์ฝ์ push(_:) : ๋ฆฌ์คํธ์ ๋งจ ์์ ๋ ธ๋ ์ฝ์ . O(1) append(_:) : ๋ฆฌ์คํธ์ ๋งจ ๋ค์ ๋ ธ๋ ์ฝ์ . O(1) insert(_:after:) : ๋ฆฌ์คํธ์ ํน์ ์ธ๋ฑ์ค์ ๋ ธ๋ ์ฝ์ . O(n) ์ญ์ pop() : ๋ฆฌ์คํธ์ ๋งจ ์์ ๋ ธ๋ ์ญ์ . O(1) removeLast() : ๋ฆฌ์คํธ์ ๋งจ ๋ค์ ๋ ธ๋ ์ญ์ . O(n) remove(after:) : ๋ฆฌ์คํธ์ ํน์ ์ธ๋ฑ์ค์ ๋ ธ๋ ์ญ์ . O(n) removeAll() : ๋ฆฌ์คํธ์ ๋ชจ๋ ๋ ธ๋ ์ญ์ . O(1) import Foundation class Node: CustomStringConvertible, Eq..
navigationController.viewControllers Apple Developer Documentation ํ์ฌ navigation stack์ ์กด์ฌํ๋ VC๋ค์ ๋ํ๋ธ๋ค. rootVC๋ 0๋ฒ์งธ ์ธ๋ฑ์ค ์์ ๋งจ ์์ ์์ธ VC๋ ๋งจ ๋ ์ธ๋ฑ์ค์ ์์ (index n-1) back view๋ index n-2 ํด๋น ํ๋กํผํฐ์ ์ ๋ทฐ์ปจ ๋ฐฐ์ด์ ํ ๋นํ๋ ๊ฒ์, setViewControllers(_:animated:) ๋ฅผ ํธ์ถํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. self.navigationController.viewControllers = [issueVC] ์ ๊ฐ์ด ํ ๋นํ๋ฉด, ๊ธฐ์กด์ ์กด์ฌํ๋ navigation stack์ ๋ฌด์ํ๊ณ ์ ๋ทฐ์ปจ์ ํ ๋น ๋ฐ๋ผ์ ๋ค์ ํ๋ฉด์ผ๋ก ๋์ด๊ฐ๋ back๋ฒํผ์ด ์กด์ฌํ์ง ์๋๋ค ์? ๊ธฐ์กด..
6.5 ์ฒ๋ผ ์์์ ์ด ์กด์ฌํ๋ Double ์๋ฃํ์ ๊ฐ์ ๋ํด, ์์์ ์ดํ๊ฐ 0์ธ์ง ์๋์ง ํ๋ณํ๊ณ ์ถ์ ๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด์๋ค. 6.5 : ์์์ ์ดํ๊ฐ 0์ด ์๋ (false) 6.0 : ์์์ ์ดํ๊ฐ 0์ (true Checking if a double value is an integer - Swift ์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์์ ์๋ฏ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง.. ์ต๋ํ ๋ถ์์ฉ์ด ์์ด ๋ณด์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํด ๋ดค๋ค. Dobule์ด Double → Int → Double ๋ก ํ๋ณํํ ๊ฐ๊ณผ ๊ฐ์์ง ํ์ธ I suggest converting the value to Int then to Double and checking the new value if value == Double(Int(value)) { // The..
Apple Developer Documentation ArraySlice๋ Array์ SubSequence์ด๋ค. SubSequence๋ Collection ํ๋กํ ์ฝ์์ associatedType์ผ๋ก ์๊ตฌํ๋ ๊ฒ Array.SubSequence๋ ArraySlice์ typealias์ด๋ค. https://developer.apple.com/documentation/swift/array/subsequence ๊ฐ์ ArraySlice๋ ํฐ ๋ฐฐ์ด์ ๋ถ๋ถ์ ๋ํ ์ฐ์ฐ์ ๋น ๋ฅด๊ณ ํจ๊ณผ์ ์ผ๋ก ์ํํ๋๋ก ๋์์ค๋ค. ๋ฐฐ์ด์ ์์๋ค์ ์๋ก์ด ๊ณต๊ฐ์ ๋ณต์ฌํ๋ ๋์ , ArraySlice๋ ์ ์ฅ๋ ๋ฐฐ์ด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ํ๋ด๊ธฐ ๋๋ฌธ์ด๋ค. Array์ ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฏ๋ก, ์ผ๋ฐ์ ์ผ๋ก ์๋ณธ ๋ฐฐ์ด๊ณผ ๋๊ฐ์ ์ฐ์ฐ์ slice..