프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12918
내가 제출한 풀이
import Foundation
func solution(_ s:String) -> Bool {
if s.count != 4, s.count != 6 { return false }
else { return s.allSatisfy({ $0.isNumber }) }
}
풀이 과정
문자열 길이가 4,6 && 오직 숫자로 구성되어 있는지 를 체크하는 문제이다
문자열 길이가 4,6인 s만 허용한다면 그 이외의 경우일 때 반환값을 알려줬어야 하는 것 같은데...
당연히 false라고 생각해서 적지 않은 걸까? 일단 false를 반환했더니 틀리는 건 없어서 그렇게 풀었다.
일단 조건문으로 s의 길이가 4와 6이 아니면 false로 쳐내준다.
if s.count != 4, s.count != 6 { return false }
그 다음으로는 숫자만 있는지 체크를 하면 되는데, 고차함수 filter를 쓸까 isNumber를 쓸까 고민하다가 isNumber를 사용했다.
더 알아보기 쉬울 것 같았기 때문이다.
코드 가독성은 중요하니까. 그리고 주석 없이도 이해할 수 있는 코드가 좋은 코드라고 유튜브에서 그랬단 말이다.
allSatisfy 라는 메서드가 있다.
조건을 클로저로 넘겨주면 해당 조건에 부합할 때 true, 하나라도 부합하지 않으면 false를 반환한다.
이 메서드와 isNumber를 사용해서 조건(문자열 s 안에 숫자만 있는가?)을 클로저로 넣어주었다.
s.allSatisfy({ $0.isNumber })
'알고리즘 > Programmers' 카테고리의 다른 글
[Swift_Programmes] 직사각형 별찍기 (0) | 2023.11.30 |
---|---|
[Swift_Programmes] 행렬의 덧셈 (2) | 2023.11.30 |
[Swift_Programmes] 부족한 금액 계산하기 (0) | 2023.11.28 |
[Swift_Programmes] 문자열 내림차순으로 배치하기 (0) | 2023.11.28 |
[Swift_Programmes] 약수의 개수와 덧셈 🌟 (0) | 2023.11.27 |