문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
func solution(_ left: Int, _ right: Int) -> Int {
var result = 0
// left 부터 right 까지 모든 수 반복
for num in left...right {
var count = 0
// 1부터 해당 숫자까지의 수로 나누어 약수 갯수 계산
for i in 1...num {
if num % i == 0 {
count += 1
}
}
// 약수의 갯수가 짝수면 + 홀수면 -
if count % 2 == 0 {
result += num
} else {
result -= num
}
}
return result
}
먼저 left 부터 right 까지 모든 수를 반복하여 num 변수에 담아둔다.
담아둔 1부터 num 변수까지의 수를 i 에 다시 넣고 num 과 i 를 나눴을때 0이 나오는 즉 약수의 갯수를 count 함수에 담아준다.
이를 통해 count 를 2로 나눴을때, 즉 짝수일때 result 값에 num을 더해주고 그렇지 않다면 빼주면 답이 해결된다.
'◽️ Programming > ◽️ Algorithm' 카테고리의 다른 글
부족한 금액 계산하기 (0) | 2024.03.22 |
---|---|
문자열 내림차순으로 정렬하기 (0) | 2024.03.20 |
내적 (1) | 2024.03.15 |
수박수박수박수? (1) | 2024.03.14 |
가운데 글자 가져오기 (0) | 2024.03.13 |