전체 글
-
swift - set #2 (Comparing Sets, Combining Sets)swift 2021. 1. 7. 04:57
set #2 Comparing Sets var a: Set = [1, 2, 3, 4, 5, 6, 7, 8, 9] var b: Set = [1, 3, 5, 7, 9] var c: Set = [2, 4, 6, 8, 10] let d: Set = [1, 7, 5, 9, 3] a == b a != b // set은 순서가 없기 때문에 요소의 동일성만 판단 b == d // 두 컬렉션에 저장된 요소를 순서대로 비교하는 메서드기 때문에 실행할 떄 마다 달라짐 b.elementsEqual(d) // 올바른 결과를 얻고 싶다면 Set을 배열로 바꾼후 정렬하고 비교해야 함 -> 비교할때는 보통 배열이 더 낫다. // Set은 집합확인이 좋다 // 부분집합 확인 a.isSubset(of: a) // 진부분집합 확인 a.i..
-
swift - Set #1 (Create a Set, Inspecting a Set, Testing MemberShip, Adding and Removing Elements)swift 2021. 1. 7. 04:45
Set - 배열과 딕셔너리에 비해 많이 사용되지는 않는다. - 주로 정렬 순서보다 검색 속도가 더 중요한 경우 배열 대신 사용 순서가 없다. 인덱스도 없음 동일한 값은 하나만 저장 -> 있는 값을 저장하면 그냥 무시됨 동일한 타입만 저장 배열보다 검색속도가 빠른 이유 해싱 알고리즘을 사용하기 때문에 Create a Set // Set // Set은 리터럴이 없고 배열 리터럴을 사용한다. let set = [1, 2, 2, 2, 3, 3, 3] set.count let set2 = Set(set) set2.count Inspecting a Set set2.count set2.isEmpty Testing for Membership // 요소가 포함되어 있는지 확인하는 작업에 제일 많이 사용 set2.cont..
-
swift - Dictionary #3 (Comparing Dictionaries, Finding Elements)swift 2021. 1. 7. 04:24
Comparing Dictionaries - Dictionary는 순서가 없다 ! 잘 기억 let a = ["A": "Apple", "B": "Banana", "C": "City"] let b = ["A": "Apple", "C": "City", "B": "banana"] a == b // false // 대소문자 구분 없이 비교하려면 // 밑에 코드는 실행할때 마다 값이 다르게 return된다? -> Dictionary는 순서가 없기 때문에 원하는 순서대로 비교하지 않는다. //a.elementsEqual(b) { (lhs, rhs) -> Bool in // print(lhs.key, rhs.key) // return lhs.key.caseInsensitiveCompare(rhs.key) == .ord..
-
swift - Dictionary #2 (Adding Keys and Values)swift 2021. 1. 7. 04:04
Adding Keys and Values var words = [String: String]() words["A"] = "Apple" words["B"] = "Banana" words.count words // 기존 값 대치 words["B"] = "Ball" // 같은 값 메소드로 // 첫번째 파라미터 : value, 두번째 파라미터 : key words.updateValue("City", forKey: "C") // 기존에 없는 키면 return nil words.updateValue("Circle", forKey: "C") // 기존에 잇는 키면 기존 return value -> insert + update = upsert Removing Keys and Values // 간단한 방법은 subscr..
-
swift - Dictionary #1 (Creating a Dictionary , Inspecting a Dictionary, Accessing key and value)swift 2021. 1. 7. 01:28
Dictionary Creating a Dictionary // 가장 단순한 방법은 리터럴 사용 let words = ["A": "Apple", "B": "Banana", "C": "City"] // 빈 dictionary let emptyDict:[String: String] = [:] // 생성자를 사용 let emptyDict2 = [String: String]() // 정식문법 let emptyDict3 = Dictionary() Inspecting a Dictionary // dictionary 요소 개수 확인 words.count words.isEmpty Accessing Keys and Values // 요소에 접근 // subscript 사용 words["A"] words["Apple"] ..
-
swift - Array #3 (Comparing Arrays, Finding Elements, Sorting on Array)swift 2021. 1. 7. 01:13
Array #3 Comparing Arrays let a = ["A", "B", "C"] let b = ["a", "b", "c"] // elements를 비교하고 저장 순서도 비교 a == b a != b // 메소드로 비교 a.elementsEqual(b) // 비교조건 직접 구현 // 대소문자 무시 a.elementsEqual(b, by: { (lhs, rhs) -> Bool in return lhs.caseInsensitiveCompare(rhs) == .orderedSame }) Finding Elements // 배열 검색 let nums = [1, 2, 3, 1, 4, 5, 2, 6, 7, 5, 0] // 파라미털 전달한 요소가 배열에 있으면 true 반환 nums.contains(1) //..
-
swift - Array #2 (Adding Elements, Remove Elements )swift 2021. 1. 7. 00:59
Array #2 Adding Elements var alphabet = ["A", "B", "C"] // 마지막 요소에 하나의 element 추가 alphabet.append("E") // String형 배열이기 때문에 String형이 아니면 error // alphabet.append(1) // 여러개의 element 추가 alphabet.append(contentsOf: ["F","G"]) // 원하는 자리에 하나의 element 추가 // 첫번째는 추가할 문자열, at은 추가할 자리 alphabet.insert("D", at: 3) alphabet.insert(contentsOf: ["a", "b", "c"], at: 0) // 배열 요소 교체 alphabet[0...2] = ["x", "y", "..
-
swift - Array #1 (Array Literal, Creating an Array, Inspecting an Array, Accessing Elements)swift 2021. 1. 7. 00:43
Array 배열의 하나의 데이터를 이루는거 Element, Entry 순서가 일정 Sigle Type 배열에 접근할 때는 정수 인덱스 사용 Array Literal 배열도 Literal로 표현가능 let nums = [1, 2, 3] nums // 배열 정식 문법으로 선언 let strArray: Array // 단축문법 let strArray2: [String] Creating an Array // 배열 생성방법 // 배열 리터럴으로 생성 let nums = [1, 2, 3] // 빈 리터럴 배열 생성 // 배열의 자료형은 저장된 리터럴을 추론하여 저장되는데 지금은 추론할 데이터가 없음 err -> 빈 리터럴은 형식 추론 사용 불가능 // let emptyArray = [] // 이렇게 직접 지정해줘야..