내 풀이
func solution(_ s:String) -> Bool {
if (s.count != 4) && (s.count != 6) {
return false
}
return s.allSatisfy({ $0.isNumber })
}
- if (s.count != 4) && (s.count != 6) { return false }
문자열 s의 길이가 4 또는 6이 아니라면 false 반환
이유: 길이가 4 또는 6이 아니라면 숫자로만 이루어진 문자열일 수 없기 때문
- return s.allSatisfy({ $0.isNumber }): allSatisfy
문자열 s의 모든 문자가 숫자인지 확인
- $0.isNumber
클로저는 주어진 문자가 숫자인지 판별
모든 문자가 숫자라면 true를 반환하고, 그렇지 않다면 false를 반환
또 다른 풀이
func solution(_ s: String) -> Bool {
let regex = #"^\d{4}$|^\d{6}$"#
return s.range(of: regex, options: .regularExpression) != nil
}
- ^\d{4}$|^\d{6}$(정규표현식)
문자열이 4자리 또는 6자리의 숫자로만 이루어져 있는지 검사
- range(of:options:)
메서드를 사용하여 정규표현식과 문자열을 비교하고, 일치하는 부분이 있으면 옵셔널 값을 반환
true: 반환된 값이 nil이 아닐 경우, 일치하는 부분이 존재한다면 문자열의 길이 4 또는 6, 숫자로만 이루어져 있다는 것을 의미
false: 일치하는 부분이 없다면 nil 반환, 문자열이 주어진 조건을 만족하지 않는다는 것을 의미
' 𝗔𝗣𝗣𝗟𝗘 > ALGORITHM' 카테고리의 다른 글
[내일배움캠프] 데일리 루틴(iOS_3회차) - 직사각형 별찍기 (1) | 2024.02.26 |
---|---|
[내일배움캠프] 데일리 루틴(iOS_3회차) - 행렬의 덧셈 (2) | 2024.02.23 |
알고리즘 복습(03) (0) | 2024.02.21 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 부족한 금액 계산하기 (0) | 2024.02.21 |
알고리즘 복습(02) (0) | 2024.02.20 |