Swift/TIL(TodayILearned)

[Swift|TIL] 240307 회고

yurim-dev 2024. 3. 8. 09:31

1️⃣ To do list

240307 to-do

 

2️⃣ 코드카타

2024.03.07 - [Swift/Code Kata (알고리즘)] - [Swift|코드카타] (프로그래머스) #34. 문자열 내림차순으로 배치하기 - sorted()는 배열을 반환한다

 

[Swift|코드카타] (프로그래머스) #34. 문자열 내림차순으로 배치하기 - sorted()는 배열을 반환한다

🔴 문제 문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문

yurim-dev.tistory.com

 

3️⃣ 회고

1. 깃이 너무 어렵다.... 처음 푸쉬할 때는 괜찮은데, 내용을 업데이트하여 다시 푸쉬할 때 자꾸 오류가 난다. 다른 깃헙 설명 영상을 찾아봐야겠다.

 

2. 클래스를 활용해 계산기 과제를 풀었다.

연산 별로 클래스를 따로 만들도록 주어졌는데, 막상 코드를 짜보니 오히려 코드가 더 길어져 가독성이 떨어졌다. 더 나은 방법이 있을까?

// 레벨 3
class Calculator {
    var op: String
    init(_ op: String) {
        self.op = op
    }
    
    func calculate(firstNumber: Double, secondNumber: Double) -> Double {
        switch op {
        case "+" :
            let add = AddOperation()
            return add.calculate(firstNumber, secondNumber)
        
        case "-" :
            let subtract = SubstractOperation()
            return subtract.calculate(firstNumber, secondNumber)
            
        case "*" :
            let multiply = MultiplyOperation()
            return multiply.calculate(firstNumber, secondNumber)
            
        case "/" :
            let divide = DivideOperation()
            return divide.calculate(firstNumber, secondNumber)
            
        default :
            return 0
        }
    }
    
}

class AddOperation {
    func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber + secondNumber
    }
}

class SubstractOperation {
    func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber - secondNumber
    }
}

class MultiplyOperation {
    func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
      return firstNumber * secondNumber
    }
}

class DivideOperation {
    func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
        return firstNumber / secondNumber
    }
}


// 실행

let addResult = Calculator("+").calculate(firstNumber: 10, secondNumber: 3)
let subtractResult = Calculator("-").calculate(firstNumber: 10, secondNumber: 3)
let multiplyResult = Calculator("*").calculate(firstNumber: 10, secondNumber: 3)
let divideResult = Calculator("/").calculate(firstNumber: 10, secondNumber: 3)

print("addResult : \(addResult)")
print("subtractResult : \(subtractResult)")
print("multiplyResult : \(multiplyResult)")
print("divideResult : \(divideResult)")

 

 

4️⃣ 내일 계획

1. 코드카타

2. git 설명 영상 찾아보기

3. 과제 영상 보고 코드 보완하기