programmers- lv.1 (기사단원의 무기)

이예송·2023년 7월 12일

PS

목록 보기
27/97

문제링크: 기사단원의 무기

✍🏻 Information

content
언어python
난이도⭐️⭐️+0.5
풀이시간20분
제출횟수3
인터넷검색유무no




🍒 My Code

def solution(number, limit, power):
    num = []
    for i in range(1,number+1):
        n = 0
        for j in range(1,int(i**(1/2))+1):
            if i%j==0:
                if j!=(i**(1/2)):
                    n+=2
                else:
                    n+=1
            if n>limit:
                num.append(power)
                break
        if n<=limit:
            num.append(n)
    return sum(num)




💡 What I learned

  • 처음에 소수구하는 부분 따로 함수로 뺐다가 이중 for문인걸 간과했다. 그렇게 시간초과에 걸려서 if n>limit 조건을 넣어줬는데도 시간초과가 나서 j for문의 범위를 줄여줬다.
  • for문의 range에는 '정수' 만 가능한가보다. int 안붙여주니 오류 떴다.

0개의 댓글