-
[Swift] 알고리즘 공부 - 약수의 개수와 덧셈알고리즘 공부/프로그래머스 2023. 3. 30. 01:46반응형
문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한 사항
- 1 ≤ left ≤ right ≤ 1,000
입출력 예
left right result13 17 43 24 27 52 설명
1. left부터 right까지 수 중에서 약수를 찾아야하기 때문에 (left...right).map{}으로 시작
2. left부터 right 각 수(n)마다 1부터 n까지 수중 약수의 개수를 찾아야 하기 때문에 filter함수로 약수를 찾고 count를 해준다.
3. count값이 짝수이면 n 홀수이면 -n을 반환
4. reduce함수로 모두 더해준다.
import Foundation func solution(_ left:Int, _ right:Int) -> Int { return (left...right).map{ n in (1...n).filter{ n % $0 == 0 }.count % 2 == 0 ? n : -n}.reduce(0,+) }
차례대로 하나씩 해 나가면 할만한 문제
반응형'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[Swift] 알고리즘 공부 - 부족한 금액 계산하기 (0) 2023.03.30 [Swift] 알고리즘 공부 - 문자열 다루기 기본 (0) 2023.03.30 [Swift] 알고리즘 공부 - 문자열 내림차순으로 배치하기 (0) 2023.03.30 [Swift] 알고리즘 공부 - 내적 (0) 2023.03.30 [Swift] 알고리즘 공부 - 수박수박수박수박수박수? (0) 2023.03.30