티스토리 뷰

728x90

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

문제 사진

내 풀이

func solution(_ s:String) -> Bool {
    if s.count == 4 || s.count == 6 {
        if Int(s) != nil {
            return true
        }
    }
    return false
}

solution("12a4")

Int로 변환시키는 Int()메서드를 사용하였습니다.

여기서 주의해야할 점은 String -> Int 로 변환시 숫자가 아닌 문자열이 들어갈 수도 있기때문에 Optional로 반환됩니다.

그래서 아래와 같이 nil 이 아닐경우 true를 리턴하게 해줬습니다.

if Int(s) != nil {
    // code
}

 

다른사람의 풀이

func solution(_ s:String) -> Bool {
    return (Int(s) != nil && (s.count == 4 || s.count == 6)) ? true : false
}

 

배운것

 

1. 문제를 천천히 읽어보자

 

s의 길이가 4 혹은 6 이라는 내용이 있는데, 4이상 6이하로 읽어서 테스트케이스에 실패했었다. 

 

2. 꼭 옵셔널 바인딩이 아니라 != nil 도 상황에 따라 잘 사용하면 좋을것 같다. 

728x90