iOS 5기 사전캠프 퀘스트 진행
Swift 기본 컬렉션 타입
Array(배열) 타입
- Array는 멤버가 순서(인덱스)를 가진 리스트 형태의 컬렉션 타입이다
- Array 선언
var intergers: Array<Int> = Array<Int>()
intergers.append(1)
intergers.contains(1)
intergers[0] = 100
intergers.remove(at: 0)
intergers.count
Dictionary 타입
- Dictionary는 Key와 Value의 쌍으로 이루어진 컬렉션 타입이다
- Dictionary 선언
var anyDIctionary: Dictionary<String, Any> = [String: Any]()
anyDictionary["someKey"] = "value"
anyDictionary["someKey"] = "dictionary"
anyDictionary.removeValue(forKey: "someKey"]
anyDictionary["someKey"] = nil
Set 타입
- Set은 순서가 없고, 멤버가 유일한 것을 보장하는 컬렉션 타입이다
- Set 선언
var intergerSet: Set<Int> = Set<Int>()
- Set 활용
intergerSet.insert(1)
intergerSet.insert(1)
intergerSet.contains(1)
intergerSet.remove(1)
intergerSet.removeFirst()
interger.union(Set타입)
interger.sorted()
interger.intersection(Set타입)
interger.subtracting(Set타입)
-퀘스트 진행-
var dictionary: Dictionary<Int, String> = [1: "르탄이", 2: "배캠이", 3: "크루아"]
var student1SubjectSet: Set<String> = []
var student2SubjectSet: Set<String> = []
var student3SubjectSet: Set<String> = []
func insertSubject(to studentNumber: Int, in subjectName: String) {
switch studentNumber {
case 1:
student1SubjectSet.insert(subjectName)
case 2:
student2SubjectSet.insert(subjectName)
case 3:
student3SubjectSet.insert(subjectName)
default:
print("\(studentNumber)는 존재하지 않는 학생번호 입니다.")
}
}
func deleteSubject(to studentNumber: Int, in subjectName: String) {
switch studentNumber {
case 1:
student1SubjectSet.remove(subjectName)
case 2:
student2SubjectSet.remove(subjectName)
case 3:
student3SubjectSet.remove(subjectName)
default:
print("\(studentNumber)는 존재하지 않는 학생번호 입니다.")
}
}
var student1Grade: Array<Int> = []
var student2Grade: Array<Int> = []
var student3Grade: Array<Int> = []
func insertGrade(to studentNumber: Int, in grade: Int) {
switch studentNumber {
case 1:
student1Grade.append(grade)
case 2:
student2Grade.append(grade)
case 3:
student3Grade.append(grade)
default:
print("\(studentNumber)는 존재하지 않는 학생번호 입니다.")
}
}
func deleteGrade(to studentNumber: Int, in grade: Int) {
switch studentNumber {
case 1:
student1Grade.removeLast()
case 2:
student2Grade.removeLast()
case 3:
student3Grade.removeLast()
default:
print("\(studentNumber)는 존재하지 않는 학생번호 입니다.")
}
}
func studentGradeAverage(to studentNumber: Int) -> String {
var studentAverage: Int = 0
switch studentNumber {
case 1:
for average in student1Grade {
studentAverage += average
}
studentAverage = studentAverage / student1Grade.count
case 2:
for average in student2Grade {
studentAverage += average
}
studentAverage = studentAverage / student2Grade.count
case 3:
for average in student3Grade {
studentAverage += average
}
studentAverage = studentAverage / student3Grade.count
default:
return "\(studentNumber)번은 존재하지 않는 학생번호 입니다."
}
return "\(dictionary[studentNumber]!)의 평균 성적은 \(studentAverage)점 입니다."
}
insertSubject(to: 1, in: "수학")
insertSubject(to: 1, in: "과학")
insertSubject(to: 1, in: "영어")
insertSubject(to: 1, in: "국어")
deleteSubject(to: 1, in: "국어")
print(student1SubjectSet)
insertGrade(to: 1, in: 80)
insertGrade(to: 1, in: 90)
insertGrade(to: 1, in: 85)
insertGrade(to: 1, in: 100)
deleteGrade(to: 1, in: 100)
print(student1Grade)
print(studentGradeAverage(to: 1))