💬 문제
[코딩테스트 연습 - 기사단원의 무기](https://school.programmers.co.kr/learn/courses/30/lessons/136798)
💬 Idea
- 약수를 구할 때 계속 시간초과 오류가 났다.
- 그래서 제곱근만큼 잘라서 수를 비교해주었다 !
- 약수를 판별할 때 해당 수가 곱해져서 원 수가 된다면 → ex) 2*2=4
- 약수가 2개가 아니라 자기 자신 하나이므로 1을 더해주고
- 그렇지 않으면 2를 더해준다. 반만 잘라서 비교하는 것이기 때문!
💬 풀이
import Foundation
func solution(_ number:Int, _ limit:Int, _ power:Int)->Int{vardivideNumbers:[Int]=[]foriin1...number {vardivideNumber=0forjin1...Int(sqrt(Double(i))){if i % j ==0{if j * j == i {
divideNumber +=1}else{
divideNumber +=2}}}if divideNumber > limit {
divideNumber = power
}
divideNumbers.append(divideNumber)}return divideNumbers.reduce(0,+)}
💬 문제[코딩테스트 연습 - 기사단원의 무기](https://school.programmers.co.kr/learn/courses/30/lessons/136798)
💬 Idea💬 풀이