iOS/Basic Challenge

[3] Array, Dictionary, Set(์ปฌ๋ ‰์…˜ ํƒ€์ž…)

 

๐Ÿ“’ Array

๐Ÿ“ ๊ฐ๊ฐ์˜ ๋ฉค๋ฒ„๊ฐ€ ์ˆœ์„œ(์ธ๋ฑ์Šค)๋ฅผ ๊ฐ€์ง„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ์˜ ์ปฌ๋ ‰์…˜ ํƒ€์ž…

๐Ÿ“ ์—ฌ๋Ÿฌ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ํ‘œํ˜„ ๋ฐฉ๋ฒ•์ด ๋‹ค์–‘

๐Ÿ“ let์„ ์‚ฌ์šฉํ•˜์—ฌ Array๋ฅผ ์„ ์–ธํ•˜๋ฉด ๋ถˆ๋ณ€ Array -> append()๋‚˜ remove() ๋“ฑ์„ ์‚ฌ์šฉํ•œ ๋ฉค๋ฒ„ ์ถ”๊ฐ€/์‚ญ์ œ ๋ถˆ๊ฐ€๋Šฅ

import Swift
import Foundation

// Array
// ๋นˆ Int Array ์ƒ์„ฑ
var integers: Array<Int> = Array<Int>()
integers.append(1)
integers.append(100)

integers.contains(100) // true
integers.contains(99) // false

// ๋ฉค๋ฒ„ ๊ต์ฒด
integers[0] = 99

integers.remove(at: 0)
integers.removeLast() // ๋งจ ๋งˆ์ง€๋ง‰ ๋ฉค๋ฒ„ ์‚ญ์ œ
integers.removeAll() // ๋ชจ๋“  ๋ฉค๋ฒ„ ์‚ญ์ œ

print(integers.count)

//Array<Double> ๊ณผ  [Double] ๋™์ผํ•œ ํ‘œํ˜„
var doubles: Array<Double> = [Double]()

// ๋นˆ String Array ์ƒ์„ฑ
var strings: [String] = [String]()

// ๋นˆ Character Array ์ƒ์„ฑ
// []๋Š” ์ƒˆ๋กœ์šด ๋นˆ Array
var characters: [Character] = []

// let์„ ์‚ฌ์šฉํ•ด Array๋ฅผ ์„ ์–ธํ•˜๋ฉด ๋ถˆ๋ณ€ Array
let immutableArray = [1,2,3]
// immutableArray.append(4)
// immutableArray.remobeAll()
// ๋นˆ Int Array ์ƒ์„ฑ
var integers: Array<Int> = Array<Int>()

// ๊ฐ™์€ ํ‘œํ˜„
// var integers: Array<Int> = [Int]()
// var integers: Array<Int> = []
// var integers: [Int] = Array<Int>()
// var integers: [Int] = [Int]()
// var integers: [Int] = []
// var integers = [Int]()

 

๐Ÿ“’ Dictionary

๐Ÿ“ ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ปฌ๋ ‰์…˜

// Dictionary
// Key: String / Value: Any type์˜ ๋นˆ Dictionary ์ƒ์„ฑ
var anyDictionary: Dictionary<String, Any> = [String:Any]()
anyDictionary["someKey"] = "๋ฒจ๋ฅ˜"
anyDictionary["anotherKey"] = 100

// ์ถœ๋ ฅ
print(anyDictionary) // ["someKey": "๋ฒจ๋ฅ˜", "anotherKey": 100]

// ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’ ๋ณ€๊ฒฝ
anyDictionary["someKey"] = "dictionary"
print(anyDictionary) ["someKey": "dictionary", "anotherKey": 100]

// Key์— ํ•ด๋‹นํ•˜๋Š” Value ์‚ญ์ œ
anyDictionary.removeValue(forKey: "anotherKey")
anyDictionary["someKey"] = nil

// ๋นˆ Dictionary
let emptyDictionary: [String: String] = [:]
let initializedDictionary: [String: String] = ["name":"nana", "gender":"female"]

// initializedDictionary ๋ฐฐ์—ด์˜ name์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๊บผ๋‚ด๋ ค๋ฉด?
// "name"์ด๋ผ๋Š” Key๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ๋ชฐ๋ผ
let someValue: String = initializedDictionary["name"]
// Key๊ฐ€ String ํƒ€์ž…์ด๊ณ  Value๊ฐ€ Any์ธ ๋นˆ Dictionary ์ƒ์„ฑ
var anyDictionary: Dictionary<String, Any> = [String: Any]()

// ๊ฐ™์€ ํ‘œํ˜„
// var anyDictionary: Dictionary <String, Any> = Dictionary<String, Any>()
// var anyDictionary: Dictionary <String, Any> = [:]
// var anyDictionary: [String: Any] = Dictionary<String, Any>()
// var anyDictionary: [String: Any] = [String: Any]()
// var anyDictionary: [String: Any] = [:]
// var anyDictionary = [String: Any]()

 

๐Ÿ“’ Set

๐Ÿ“ ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ปฌ๋ ‰์…˜ (์ค‘๋ณต ์—†์Œ ๋ณด์žฅ)

// Set (์ค‘๋ณต๊ฐ’ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅ)
var integerSet: Set<Int> = Set<Int>()
integerSet.insert(1)
integerSet.insert(3)
integerSet.insert(3)

integerSet.contains(1)
integerSet.contains(2)

integerSet.remove(3)
integerSet.removeFirst()

integerSet.count

let setA: Set<Int> = [1,2,3,4,5]
let setB: Set<Int> = [3,4,5,6,7]

// ํ•ฉ์ง‘ํ•ฉ
let union: Set<Int> = setA.union(setB) //{2,4,5,6,7,3,1}
// ์ •๋ ฌ
let sortedUnion: [Int] = union.sorted() //{1,2,3,4,5,6,7}
// ๊ต์ง‘ํ•ฉ
let intersection: Set<Int> = setA.intersection(setB)
// ์ฐจ์ง‘ํ•ฉ
let subtracting: Set<Int> = setA.subtracting(setB)