μ¬μ©νλ λ©μλμ μ μ λΆλΆμ μ μ΄ν΄λ³΄λ©΄, λ΅μ΄ λμ¨λ€.
μ¬μ©νλ λ©μλμ λ°λΌ μ»΄νμΌλ¬ λ²μ λ μ λ°μ Έλ΄μΌ μ€νμ΄ λλμ§ μλλμ§ μ μ μλ€.
μ€νμ μ½λλ‘ κ΅¬ννλ λ°©λ²μ μμλ€.(LIFO)
.suffix(_ k:)
, .removeSubrange(_ Range: )
λ©μλ μ¬μ© λ°©λ²μ μ μ μμλ€.
.replacingOccurences(of: , with: )
λ©μλλ 쑰건μ λ§λ λͺ¨λ λΆλΆλ€μ ν λ²μ λ³νμμΌ λ²λ¦¬λλΌ...
import Foundation
class Calculator {
func calculate(_ inputOperator: String, _ firstNumber: Double, _ secondNumber: Double) -> Double {
if inputOperator == "+" {
let op = AddOperation()
return op.operate(firstNumber, secondNumber)
} else if inputOperator == "-" {
let op = SubstractOperation()
return op.operate(firstNumber, secondNumber)
} else if inputOperator == "*" {
let op = MultiplyOperation()
return op.operate(firstNumber, secondNumber)
} else if inputOperator == "/" {
let op = DivideOperation()
return op.operate(firstNumber, secondNumber)
} else if inputOperator == "%" {
return firstNumber.truncatingRemainder(dividingBy: secondNumber)
} else {
print("μ μ νμ§ μμ μ°μ°μ μ
λ ₯μ
λλ€.")
return 0 }
}
}
class AddOperation {
func operate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
return firstNumber + secondNumber
}
}
class SubstractOperation {
func operate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
return firstNumber - secondNumber
}
}
class MultiplyOperation {
func operate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
return firstNumber * secondNumber
}
}
class DivideOperation {
func operate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
if secondNumber == 0 {
print("0μΌλ‘λ λλ μ μμ΅λλ€!")
return 0
} else {
return firstNumber / secondNumber
}
}
}
func main() -> Double {
print("μ¬μΉμ°μ°μ μ€ νλλ₯Ό μ¬μ©ν μ¬μΉμ°μ° μμ μ
λ ₯νμΈμ. λ¨ μ«μμ μ°μ°κΈ°νΈλ 곡백μΌλ‘ ꡬλΆλμ΄μΌ ν©λλ€.")
let input = readLine()
var x = 0.0, y = 0.0, op = ""
if let input = input {
let inputs = input.components(separatedBy: " ")
guard !inputs[0].isEmpty else {
print("μ
λ ₯ κ°μ΄ μμ΅λλ€. λ€μ μλν΄μ£ΌμΈμ.")
return 0
}
x = Double(inputs[0])!
op = inputs[1]
y = Double(inputs[2])!
} // μ
λ ₯μΌλ‘ λ°μ "(μ μ) (μ°μ°μ) (μ μ)" ννμ λ¬Έμμ΄μμ κ°κ°μ μΆμΆν΄μ 미리 μ μΈν΄λμλ λ³μμ λμ
let calc = Calculator() // Calculator κ°μ²΄ μμ±
let result = calc.calculate(op, x, y) // result λ³μμ Calculate ν΄λμ€ λ΄λΆμ calculate ν¨μ μ€ν κ²°κ³Όλ₯Ό μ μ₯
print(result) // κ²°κ³Ό μΆλ ₯
// print("λ°©κΈ κ³μ°ν κ°μ μΆκ°μ μΌλ‘ μ°μ°μ μ§ννμκ² μ΅λκΉ?") ** 미ꡬνκΈ°λ₯
return result
}
μ’μ κΈ λ³΄κ³ λ§μ΄ 곡λΆνμ΅λλ€. μμΌλ‘λ μ’μ κΈ λ§μ΄ μ¨μ£ΌμΈμ~ π