Programmers/LV1.

Lv1 | Swift -문자열을 정수로 바꾸기

ziziDev 2024. 5. 28. 09:11
반응형

프로그래머스

Lv1.

문자열을 정수로 바꾸기

문제를 풀었습니다

 

 

문제 설명

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

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

예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

 

정답
import Foundation

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

 

부호도 앞에 있더라도 Int형으로 바뀌면서 알아서 받아들일거라 생각했고 진행을 하였다

자료형을 바꾸는 작업은 optional이기 때문에 반드시 한 번 벗겨내는 작업을 해야한다

 

 

 

다른 사람 풀이

var result: Int = (
    // 삼항 연산자: s가 "+"로 시작하는지 확인
    // s가 "+"로 시작하면, "+"를 제거한 후 정수로 변환
    // s가 "+"로 시작하지 않으면, 문자열 s를 그대로 정수로 변환
    s.hasPrefix("+") ?    
    Int(s.replacingOccurrences(of: "+", with: "")) : Int(s)
)! // 위의 두 경우 중 하나는 Optional(Int?)을 반환하기 때문에 강제 언래핑
return result

 

hasPerfix 메서드와

replacingOccurrences(of: with:)의 사용방법에 대해서 알게되었습니다

 

 

반응형