-
[Swift] 프로그래머스 - 배열 만들기 2 / LV.0, 181921기초라고 생각되는 것/문제풀이 2023. 11. 21. 12:22반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181921
l 이상 r 이하 -> 범위
"0"과 "5" -> 필터링
func solution(_ l:Int, _ r:Int) -> [Int] { var result: [Int] = [] var count = 0 for i in (l...r) { count = 0 if i % 5 != 0 { continue } let charI = String(i) for c in charI { if !(c == "5" || c == "0") { count = 0; continue } count += 1 } if charI.count == count { result.append(i) } } return result.isEmpty ? [-1] : result }
고차함수 이용
func solution2(_ l:Int, _ r:Int) -> [Int] { let result = (l...r) .filter({ $0 % 5 == 0 }) .filter({ String($0).allSatisfy({$0 == "5" || $0 == "0" }) }) return result.isEmpty ? [-1] : result }
allSatisfy를 사용하면서 주의해야할 점은 Sequence가 비어있는 경우에도 true를 반환한다.
참고
https://developer.apple.com/documentation/swift/string/allsatisfy(_:)
'기초라고 생각되는 것 > 문제풀이' 카테고리의 다른 글
[Swift] 프로그래머스 - 주사위 게임 3 / LV.1, 68935 (2) 2023.12.05 [Swift] 프로그래머스 - 3진법 뒤집기 / LV.1, 68935 (0) 2023.11.21 [Swift] 프로그래머스 - 수열과 구간 쿼리 4 / LV.0, 181922 (0) 2023.11.18 [Swift] 프로그래머스 - 수열과 구간 쿼리 3 / LV.0, 181924 (0) 2023.11.01 [Swift] 프로그래머스 - 원소들의 곱과 합 / LV.0, 181929 (1) 2023.10.30