그래도 아직 과제제출까지는 약간의 시간이 남아있다!
개인과제에서 시간을 많이 잡아먹어서 나는 reduce()와 sort() 함수만 작성해보았다. 제출마감인 자정까지 에너지가 남는다면 filter()도 도전해보자!
let numbers = [3, 4, 5]
var sum = 0
for number in numbers{
sum += number
}
print(sum) // 출력값: 12
var subtract = 0
for number in numbers {
subtract -= number
}
print(subtract)
/*
출력값: -12(X) ⇒ -6(O)
쟁점: -6 이 나와야 하는데 -12 값으로 출력된다.
그런것으로 보아 (-3)+(-4)+(-5) 로 연산되어지는게 분명하다.
*/
var multiply = 1
for number in numbers{
multiply *= number
}
print(multiply) // 출력값: 60
: -(뺄셈)연산이 올바른 값을 도출해내지 못함. 구현과정이 틀린 것일까?
: 아직 찾는 중이다. 아버지 보고 있다면 정답을 알려조(!)
let unsorted = [9, 8, 67, 34, 6, 53]
func sort(numArray: [Int], symbol: String) -> Array<Int> {
var sortArray = numArray
if symbol == "<" {
for i in 0 ..< sortArray.count {
for j in i+1 ..< sortArray.count {
if sortArray[i] > sortArray[j] {
let result = sortArray[i]
sortArray[i] = sortArray[j]
sortArray[j] = result
}
}
}
}
else if symbol == ">" {
for i in 0 ..< sortArray.count {
for j in i+1 ..< sortArray.count {
if sortArray[i] < sortArray[j] {
let result = sortArray[i]
sortArray[i] = sortArray[j]
sortArray[j] = resut
}
}
}
}
}
else {
for i in 0 ..< sortArray.count {
for j in i+1 ..< sortArray.count {
if sortArray[i] > sortArray[j] {
let result = sortArray[i]
sortArray[i] = sortArray[j]
sortArray[j] = result
}
}
}
}
return sortArray
}
let cresendoArray = sort(numArray: unsorted, symbol: "<")
print(cresendoArray) // 출력값: [6, 8, 9, 34, 53, 67] (오름차순)
let decresendoArray = sort(numArray: unsorted, symbol: ">")
print(decresendoArray) // 출력값: [67, 53, 34, 9, 8, 6] (내림차순)
let defaultSortArray = sort(numArray: unsorted, symbol: "")
print(defaultSortArray) // 출력값: [6, 8, 9, 34, 53, 67] (기본정렬값: 오름차순)
: if문의 조건을 오름차순, 내림차순 2가지만 쓰면 될 줄 알았는데, 기호를 제시하지 않더라도 적용되는 기본값에 대해서는 생각하지 못했다.
: 기본정렬값인 조건을 마지막에 하나 더 추가해주었고,
주어진 과제의 조건 및 요구사항은 항상 주의깊게 읽어 숙지하고 예외상황을 대비하도록 염두하자.
공식문서 참고하는 방법
그전까지는 모르는 새로운 개념을 접했을때도 공식문서의 존재는 알고 있었지만 잘 이용하지 않았다.(영문이라 해석이 귀찮았다...) 검색시 나오는 한글로 정리된 수많은 블로그 포스트를 손쉽게 참고 했었는데 공식문서는 일단 영문이어서 거부감이 들어서 그렇지 짧고 간결하게 개념과 예시를 정리가 되어 있어 시간낭비 안하고 보다 효율적 학습이 가능한 것 같다.
생각하는 바를 Swift 언어로 표현하는 능력이 부족
이 부분에 대해서는 문법에 대해서 계속해서 공부하고 직접 사용해보고 익숙해지는 수 밖에 없다는 생각이다.