Swift 코딩테스트 준비
Swift 컬렉션 타입(Array, Dictionary, Set)
천 원
2022. 5. 14. 23:05
Array: 순서가 있는 리스트 컬렉션
// 배열 선언
var array: Array<Int> = []
var array: [Int] = []
var array = [Int]()
var array = Array(repeating: 1, count: 5) // [1,1,1,1,1)
//배열 추가
array.append(1)
array.append(contentsOf: [2,3,4])
print(array) // [1,2,3,4]
//배열 삽입
array.insert(0, at: 5)
print(array) // [5,1,2,3,4]
// 배열 요소 변경하기
var array = [1, 2 ,3]
array[0] = 10 // [10, 2, 3]
array[0...2] = [10, 20, 30] // [10, 20, 30]
array[0...2] = [0] // [0]
// 삭제
array.remove(at: 0) // 지정삭제
array.removeLast() // 마지막 삭제
array.removeAll() // 전체 삭제
array.removeSubrange(1...3) // 특정 범위 삭제
//정렬
array.sort() // 오른차순 정렬
array.sort(by: >) // 내림차순 으로 정렬
let sortedArray = array.sorted() // 정렬한 값 리턴
array.contains(1) // 멤버 포함여부
array.swapAt(0, 4) // 배열 두개 위치 swap
array.shuffle() // 배열 무작위 섞기
array.count // 멤버 수 확인
array.isEmpty // 비어있는지
array.first // 첫번째
array.last // 마지막
Dictionary: "키"와 "값"의 쌍으로 이루어진 컬렉션 타입
// 딕셔너리 선언
var dictionary: Dictionary<String, Int> = [:]
var dictionary: [String: Int] = [:]
var dictionary: [String: Int]()
// 키에 해당하는 값 할당
dictionary["apple"] = 200
dictionaty.updateValue(300, forKey: "orange")
print(dictionary) // ["apple":200, "orange":300]
//요소 접근
dictionary["apple"] // Optional(200)
dictionary["apple", default: 100] // 200
//키에 해당하는 값 제거
dictionary.removeValue(forKey: "apple")
dictionary["apple"] = nil
dictionary.removeAll() // 전체삭제
// 나열
dictionary.keys // key 나열 "apple", "orange"
dictionary.values // 200, 300
dictionary.count // 갯수 확인
dictionary.isEmpty // 비어있는지 확인
Set: 정렬되지 않은 컬렉션, 배열과 달리 중복 요소를 허용하지 않는다
// set 선언
var set: Set<Int> = []
var set: Set<Int>()
var set: NSSet = [] // 여러 타입을 저장하는 Set 생성
set.count // 갯수 확인
set.isEmpty // 비어있는지
var set: Set<Int> = [1, 2, 3, 4]
set.contains(1) // 요소 확인 true
// 값넣기
set.insert(1)
set.update(with: 1)
// 삭제
set.remove(1)
set.removeAll()
// 포함관계
var set1: Set<Int> = [1, 2, 5, 0]
var set2: Set<Int> = [1, 2]
set1.isSubset(of: set2) // set1은 set2의 부분집합이냐? false
set1.isSuperset(of: set2) // set1은 set2의 상위집합이냐? true
set1.isDisjoint(with: set2) // set1은 set2와 서로수 집합
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]
// 1. intersection : 교집합을 새로운 Set으로 리턴
a.intersection(b) // [1, 3, 5, 9, 7]
b.intersection(c) // [] : 겹치는 요소 없음
// 2. union : 합집합을 새로운 Set으로 리턴
a.union(b) // [2, 7, 9, 4, 8, 5, 6, 1, 3]
b.union(c) // [9, 3, 10, 4, 1, 8, 7, 2, 6, 5]
// 3. sysmetricDifference : 여집합을 새로운 Set으로 리턴
a.symmetricDifference(b) // [4, 8, 6, 2]
b.symmetricDifference(c) // [10, 9, 8, 6, 7, 1, 2, 4, 3, 5]
// 4. subtracting : 차집합을 새로운 Set으로 리턴
a.subtracting(b) // [4, 8, 6, 2]
b.subtracting(c) // [9, 1, 3, 5, 7]