최초 코드 - timeout
def solution(number, limit, power):
answer = 0
tmp = []
for i in range(1, number + 1):
cur = 0
for j in range(1, i + 1):
if i % j == 0:
cur += 1
tmp.append(cur)
result = [tmp[i] if tmp[i] <= limit else power for i in range(number) ]
return sum(result)
패스 코드
def solution(number, limit, power):
answer = 0
for i in range(1, number + 1):
tmp = 0
for j in range(1, int(i ** 0.5) + 1):
if i % j == 0:
tmp += 1
if j ** 2 != i:
tmp += 1
if tmp > limit:
tmp = power
break
answer += tmp
return answer
약수를 구할 때 1 ~ number만큼 구하면 시간 초과가 난다.
number의 제곱근 까지 구해 처리해보자.
'코딩 테스트 (Coding Test)' 카테고리의 다른 글
[프로그래머스] 햄버거 만들기 (0) | 2023.01.06 |
---|---|
[프로그래머스] 푸드 파이트 대회 (0) | 2023.01.05 |
[프로그래머스] 과일 장수 (0) | 2023.01.05 |
[프로그래머스] 그리디 조이스틱 파이썬 문제풀이 (0) | 2021.12.24 |
[프로그래머스] 그리디 체육복 파이썬 문제풀이 (0) | 2021.12.24 |