def solution(number, limit, power):
answer = 0
numbers = [i+1 for i in range(number)]
for i in range(len(numbers)):
for j in range(1,numbers[i]+1):
if numbers[i]%j == 0:
answer+= 1
numbers[i] = answer
answer = 0
for i in range(len(numbers)):
if numbers[i] > limit:
numbers[i] = power
print(numbers)
return sum(numbers)
약수를 찾는 과정에서 for문을 이용하여 약수를 찾으니 몇개의 테스트케이스에서 시간초과가 발생했다.
import math
def solution(number, limit, power):
answer = []
count = 0
numbers = [i+1 for i in range(number)]
for i in range(len(numbers)):
for j in range(1,int(math.sqrt(numbers[i])+1)):
if numbers[i]%j == 0:
count += 1
if j != numbers[i]//j:
count += 1
answer.append(count)
count = 0
print(count)
for i in range(len(answer)):
if answer[i] > limit:
answer[i] = power
return sum(answer)
제곱근을 이용하여 약수의 개수를 구하니 시간초과오류를 해결할수 있었다.
'코딩테스트' 카테고리의 다른 글
백준 1620번 - 나는야 포켓몬 마스터 이다솜 PYTHON (0) | 2024.08.03 |
---|---|
프로그래머스 과일 장수 PYTHON (0) | 2024.07.31 |
프로그래머스 소수찾기 PYTHON (0) | 2024.07.29 |
프로그래머스 추억 점수 PYTHON (0) | 2024.07.28 |
프로그래머스 K번째수 PYTHON (0) | 2024.07.27 |