HIT해
[Swift] Dictionary 본문
728x90
딕셔너리 생성하기
var dict = [String:Int]()
딕셔너리 갯수 확인하기
dict.count
dict.isEmpty
딕셔너리 요소 접근하기
print(dict[key]) // Optional(value)
print(dict[key,default : 100]) // value or 100
딕셔너리 요소 추가하기
1. SubScript
dict[Key] = value
2. updateValue(value, forKey: Key)
dict.updateValue(100, forKey: Key)
// 키가 없다면 추가 후 nil 리턴
딕셔너리 요소 삭제하기
1. Subscript
dict[Key] = nil
2. removeValue(forKey:)
dict.removeValue(forKey: Key)
3. removeAll()
dict.removeAll()
Key, Value 나열
// Key
dict.keys
dict.keys.sorted()
// Value
dict.values
dict.values.sorted()
딕셔너리 요소 검색하기
let condition: ((String, Int)) -> Bool = {
$0.0.contains("h")
}
// 1. contains(where:)
dict1.contains(where: condition)
// 2. first(where:)
dict1.first(where: condition)
// 3. filter
dict1.filter(condition)
번외) 딕셔너리 속 딕셔너리
var timePositions = [Int: [String:[Int]]]()
해당 구조체에서 [Int] 에 값을 추가해보자
timePositions[time, default: [:]][positionKey, default: []].append(robotId)
처음 Int 에 접근했을떄 딕셔너리가 비어있을 수 있기에
default로 딕셔너리를 초기화 해준다.
그리고 해당 딕셔너리의 키와 value (Int 배열) 을 추가해줘야하는데.
마찬가지로 Int값을 추가할 수 있도록
String Key값에 접근시 빈배열을 초기화 해준다.
마치 2차원배열처럼 사용되는 모습이다.
'Swift > Swift 알고리즘' 카테고리의 다른 글
[Swift/프로그래머스] 연속된 부분 수열의 합 (그리디) (0) | 2024.10.31 |
---|---|
[Swift/프로그래머스] 요격 시스템 (그리디) (0) | 2024.10.31 |
[Swift/프로그래머스] 충돌위험 찾기 (완전탐색) (0) | 2024.10.31 |
[Swift/프로그래머스] 퍼즐 게임 챌린지 (이분탐색) (0) | 2024.10.31 |
[Swift/프로그래머스] 도넛과 막대 그래프 (완전탐색, 그래프) (0) | 2024.10.31 |