func solution(_ s:String) -> Bool {
if (s.count != 4) && (s.count != 6) { return false }
return s.allSatisfy({ $0.isNumber })
}
문자열.allSatisfy({ $0.isNumber })
문자열이 숫자인지 한번에 확인하는 방법 - O(n)if 조건문 ? 맞으면여기 : 틀리면여기
3항 연산자 복습!Int(문자열)
에 문자가 있으면 nil
이 반환된다.사실 이 짧은 코드속에 시행착오가 많았다.
for c in s {
if c.isNumber ?? false {
continue
} else {
return false
}
} // 실패
return Int(s) == nil ? false : true // 5,6,28,29 실패
return s.allSatisfy({ $0.isNumber }) // 5,6,28,29 실패
4~5번을 제출했는데 계속 5,6,28,29만 실패했다.
결론은 문자열의 길이가 4 또는 6이어야만 한다는 조건이 없었다.
이것도 모르고 근 10분을 넘게 기호가 들어와서 오류가 났는지 고민했다..
문제를 제대로 보자는 큰 교훈을 얻고 마무리 😅
그래서 얻은 9점..! 😙
난 아직 백준 랭킹이나 백준잔디, 리트코드 잔디보다 이 점수가 더 좋다.
높은 점수를 받을 수 있는 코드를 고민하게 한다 ㅋㅋ
func solution(_ s:String) -> Bool {
return (Int(s) != nil && (s.count == 4 || s.count == 6)) ? true : false
}