마이너스 기준으로 카운트해야 한다. 마이너스가 나왔는지 불리언 값으로 체크, 최댓값까지 모아서 전체 값에 반영하자
import Foundation
let expression = String(readLine()!)
func solution(expression: String) -> Int {
var total = 0
var tmp = ""
var minus = false
for digit in expression {
if digit.isNumber {
tmp += String(digit)
} else {
if !minus && digit == "+" {
total += Int(tmp)!
tmp = ""
} else if !minus && digit == "-" {
minus = true
total += Int(tmp)!
tmp = ""
} else if minus {
total -= Int(tmp)!
tmp = ""
}
}
}
if minus {
total -= Int(tmp)!
} else {
total += Int(tmp)!
}
return total
}
let total = solution(expression: expression)
print(total)