알고리즘 - 프로그래머스 문자열을 정수로 바꾸기 (Swift)

2020. 7. 2. 10:54Algorism

반응형

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.제한 조건

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 0으로 시작하지 않습니다.

문자열을 정수로 바꾸기 네 기본 함수가 지원을 해주니 문제를 통과하기에는 다른 문제 보다는 간편합니다.

그래도 한번 내부적으로 어떻게 변형이 되는지 확인은 해봐야 할 것 같네요.

func solution(_ s:String) -> Int {
    return Int(s)!
}

 

 

위의 코드에 +, -연산자만 들어갈 경우에는 에러가 나오지 조금더 코드양은 많아지지만

 

안전하게 코드를 작성한다면 아래 처럼 nil && 카운트 체크를 해주고 

+, - 연산자에 대해서 모두 제거를 해준뒤 문자열을 정수로 바꾸어 반환해주는 방법도 있겠지만 조건에 따라서

알맞게 작성 하면 될 것 같아요. (저도.. 아직 공부중이라 정확 하지 않습니다.)

func solution(_ s:String) -> Int {
    var resultString = s
    var resultInt:Int = 0
    
    if Array(s).count <= 0 {
        return 0
    }
    
    if Array(s)[0] == "+" {
        resultString.remove(at: resultString.startIndex)
        resultInt = Int(resultString) ?? 0
    } else if Array(s)[0] == "-" {
        resultString.remove(at: resultString.startIndex)
        resultInt -= Int(resultString) ?? 0
    } else {
        resultInt = Int(resultString) ?? 0
    }
    
    return resultInt
}

 

반응형