Skip to content

[Algorithm] 기사단원의 무기 #28

Description

@hwangJi-dev

💬 문제

[코딩테스트 연습 - 기사단원의 무기](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,+)}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions