출처:프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12918
난이도:Lv.1
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
- s는 길이 1이상, 길이 8이하인 문자열 입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 이루어져 있습니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
func solution(_ s: String) -> Bool {
// s의 길이가 4 또는 6인지 확인
if s.count != 4 && s.count != 6 {
return false
}
// 문자열을 내림차순으로 정렬
let arr = String(s.sorted(by: >))
// 정렬된 문자열의 첫 번째 문자가 숫자인지 확인
if arr.first! >= "0" && arr.first! <= "9" {
// 모든 문자가 숫자인지 확인
for char in s {
if char < "0" || char > "9" {
return false
}
}
return true
} else {
return false
}
}
ASCII코드 값을 고려했을 때 문자열이 더 크니까, 내림차순 정렬로 맨 앞으로 문자를 보내 0 ~ 9가 아닐경우 false해 줌
'Programmers' 카테고리의 다른 글
[iOS Swift] Lv.1 행렬의 덧셈 (0) | 2024.05.23 |
---|---|
[iOS Swift] Lv.2 카펫 (0) | 2024.05.22 |
[iOS Swift] Lv.1 부족한 금액 계산하기 (0) | 2024.05.22 |
[iOS Swift] Lv.1 문자열 내림차순으로 배치하기 (1) | 2024.05.22 |
[iOS Swift] Lv.1 약수의 개수와 덧셈 (0) | 2024.05.20 |