반응형
프로그래머스
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:)의 사용방법에 대해서 알게되었습니다
반응형
'Programmers > LV1.' 카테고리의 다른 글
Lv1 | Swift - 자연수 뒤집어 배열로 만들기 (0) | 2024.06.03 |
---|---|
Lv1 | Swift - 자릿수 더하기 (1) | 2024.05.31 |
Lv1 | Swift - 약수의 합 (0) | 2024.05.30 |
Lv1 | Swift - 문자열 내 p와 y의 개수 (0) | 2024.05.29 |
Lv1 | Swift - 짝수와 홀수 (0) | 2024.05.27 |