반응형
문제
내 풀이
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
반응형
'⚙️ 알고리즘 > 프로그래머스' 카테고리의 다른 글
[Swift] 프로그래머스 - 단어 변환 (Level. 3) (0) | 2023.05.21 |
---|---|
[Swift] 프로그래머스 - [1차] 비밀지도 (0) | 2023.03.19 |
[Swift] 프로그래머스 - 문자열 압축 (Level. 2) (0) | 2023.01.29 |
[Swift] 프로그래머스 입문 - 겹치는 선분의 길이 (0) | 2023.01.25 |
[Swift] 프로그래머스 코딩테스트 입문 - 구슬을 나누는 경우의 수 (0) | 2023.01.18 |