import Foundation
func solution(_ s:String) -> Int {
var result: Int = (s.hasPrefix("+") ? Int(s.replacingOccurrences(of: "+", with: "")) : Int(s))!
return result
}
다른사람 풀이
func solution(_ s:String) -> Int {
return Int(s)!
}
-만 형변환 가능한 줄 알았던 빠가.. 사실 - / + 둘 다 형 변환이 가능하다는 사실
func solution(_ s:String) -> Int {
var newS = ""
var mark = ""
if s[s.startIndex] == "+" || s[s.startIndex] == "-" {
mark = String(s[s.startIndex])
newS = s
newS.remove(at:newS.startIndex)
} else {
newS = s
}
if let result = Int(newS) {
if mark == "+" || mark == "" {
return result
} else if mark == "-" {
return result * -1
}
return result
} else {
return 0
}
}
처음 시작 인덱스를 + / - 를 확인하고 부호를 제거해준다 그리고 부호를 제거한 부분을 숫자로 변경하고 -인 경우에만 literal * -1을 한 것을 확인할 수 있다
아주 신박..
func solution(_ s:String) -> Int {
var result: Int = 0
if s.count > 1 && s.count <= 5 {
if let r = Int(s) {
result = r
} else {
print("nil!!")
}
} else {
print("s의 길이는 1이상 5이하입니다.")
}
return result
}
조건값 추가해서 문자열을 정수로 반환하는걸 볼 수 있다
func solution(_ s:String) -> Int {
var result = 0
var range = s.startIndex..<s.endIndex
let isUnsignedInt = s[s.startIndex] == "-"
if isUnsignedInt == true {
range = s.index(after: s.startIndex)..<s.endIndex
}
result = Int(s[range])!
return s[s.startIndex] == "-" ? -result : result
}
이 분은 bool을 통해서 제일 앞자리 문자가 -면 첫 부호 이후부터 저장을 한다 그리고 3항연산자를 사용하여 처음 index가 -면 -literal 양수면 literal을 사용한다
이것도 매우 신박.. range를 잡아주는것..
func solution(_ s:String) -> Int {
var switchNumber = Int(s) ?? 0
return switchNumber
}