본문 바로가기
Problem Solving/Programmers

[구현] 프로그래머스 136798 기사단원의 무기

by Bokoo14 2023. 3. 21.

https://school.programmers.co.kr/learn/courses/30/lessons/136798

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(number, limit, power):
    answer = 0
    for i in range(1, number+1):
        tmp = 0
        # 해당 수의 약수의 개수를 count
        for j in range(1, int(i**0.5)+1):
            if i%j == 0: # 약수라면
                if j == i//j: # 제곱근이라면
                    tmp += 1
                else: # 제곱근이 아닐 경우
                    tmp += 2 
        if tmp > limit:
            answer += power
        else:
            answer += tmp
    return answer

 

key point

제곱근을 신경쓰는게 중요!

-> 시간복잡도 줄이기