⚙️ 알고리즘/프로그래머스
[Swift] 프로그래머스 / 코딩테스트 입문 - 합성수 찾기
dev_zoe
2023. 1. 6. 21:30
반응형
문제
내 풀이
func solution(_ n:Int) -> Int {
var count = 0
var answer = 0
for i in 1...n {//1부터 10까지
for j in 1...i{
if i%j == 0{
count += 1
}
}
if count >= 3 {
answer += 1
}
count = 0
}
return answer
}
고차함수 활용 풀이
return (1...n).filter { i in
(1...i).filter { i % $0 == 0 }.count >= 3 }.count
1) (1...n).filter : 1부터 n까지의 range에서 다음과 같은 조건으로 필터링하겠다.
2) i in (1...i).filter { i % $0 == 0 : 1부터 n까지 반복해서, 차례대로 (1...n)으로 나누었을 때 나누어떨어지는 수들로 필터링하겠다.
3) count >= 3 : 그랬을 때 필터링된 배열의 원소의 갯수가 3개 이상인 것들로만 1) 배열 필터링
4) .count : 3)에 의해 필터링된 배열의 원소 count
반응형