본문 바로가기
🍎 Swift/Programmers

[👾 Programmers] 18. 문자열 정수로 바꾸기

by 솔비님 2024. 6. 23.

1. 문제 설명 (📎Link)

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

 

2. 제한사항

s의 길이는 1 이상 5이하입니다. 

s의 맨앞에는 부호(+, -)가 올 수 있습니다. 

s는 부호와 숫자로만 이루어져있습니다. 

s는 "0"으로 시작하지 않습니다.


📝 문제

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

 

 

💻 내가 푼 방법(테스트 성공)

1) 오류 발생

func solution(_ s:String) -> Int {
    var result = Int(s)
    return result
}

→ result 가 Int? 타입이라 강제언래핑 시켜줘야 한다고 함

 

2) 수정

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

 


🔎 의문점과 공부한 것

1. 강제언래핑 시 nil 값이 반환되면 런타임 오류가 발생할 수 있으므로 아래와 같이 처리하면 더 안전하다고 한다

1) 옵셔널 바인딩 설정

func solution(_ s:String) -> Int {
    if let result = Int(s) {
        return result
    } else {
        // 변환에 실패했을 때 적절한 기본값을 반환하거나 예외 처리를 할 수 있습니다.
        return 0
    }
}

 

2) 기본값 설정

func solution(_ s:String) -> Int {
    let result = Int(s) ?? 0
    return result
}