728x90
반응형
출처: 프로그래머스 코딩 테스트 연습 문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예 설명
입출력 예 #112의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #25의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
def solution(n):
answer = sum(list(filter(lambda x:n%x ==0 , range(1, n+1))))
return answer
n = 12
solution(n)
결과:
테스트 1 〉 | 통과 (0.01ms, 10.2MB) |
테스트 2 〉 | 통과 (0.01ms, 10.2MB) |
테스트 3 〉 | 통과 (0.08ms, 10.2MB) |
테스트 4 〉 | 통과 (0.04ms, 10.2MB) |
테스트 5 〉 | 통과 (0.15ms, 10.2MB) |
테스트 6 〉 | 통과 (0.06ms, 10.2MB) |
테스트 7 〉 | 통과 (0.23ms, 10.2MB) |
테스트 8 〉 | 통과 (0.05ms, 10.1MB) |
테스트 9 〉 | 통과 (0.20ms, 10.2MB) |
테스트 10 〉 | 통과 (0.35ms, 10.3MB) |
테스트 11 〉 | 통과 (0.20ms, 10.2MB) |
테스트 12 〉 | 통과 (0.33ms, 10.2MB) |
테스트 13 〉 | 통과 (0.02ms, 10.2MB) |
테스트 14 〉 | 통과 (0.20ms, 10.2MB) |
테스트 15 〉 | 통과 (0.20ms, 10.2MB) |
테스트 16 〉 | 통과 (0.01ms, 10.2MB) |
테스트 17 〉 | 통과 (0.34ms, 10.2MB) |
다른 사람의 풀이로 계선하였다.
def solution(n):
answer = n+ sum(list(filter(lambda x:n%x ==0 , range(1, (n // 2) + 1))))
return answer
n = 12
solution(n)
n // 2 으로 하고 마지막에 자기 자신을 더해주니깐 확실히 성능이 확 좋아졌다.
테스트 1 〉 | 통과 (0.01ms, 10.3MB) |
테스트 2 〉 | 통과 (0.01ms, 10.2MB) |
테스트 3 〉 | 통과 (0.04ms, 10.2MB) |
테스트 4 〉 | 통과 (0.02ms, 10.2MB) |
테스트 5 〉 | 통과 (0.07ms, 10.1MB) |
테스트 6 〉 | 통과 (0.03ms, 10.2MB) |
테스트 7 〉 | 통과 (0.21ms, 10.2MB) |
테스트 8 〉 | 통과 (0.04ms, 10.2MB) |
테스트 9 〉 | 통과 (0.09ms, 10.2MB) |
테스트 10 〉 | 통과 (0.21ms, 10.2MB) |
테스트 11 〉 | 통과 (0.08ms, 10.3MB) |
테스트 12 〉 | 통과 (0.12ms, 10.2MB) |
테스트 13 〉 | 통과 (0.01ms, 10.3MB) |
테스트 14 〉 | 통과 (0.11ms, 10.2MB) |
테스트 15 〉 | 통과 (0.11ms, 10.2MB) |
테스트 16 〉 | 통과 (0.00ms, 10.2MB) |
테스트 17 〉 | 통과 (0.19ms, 10.3MB) |
반응형
'문제 > 프로그래머스' 카테고리의 다른 글
문자열을 정수로 바꾸기 (0) | 2021.08.20 |
---|---|
시저 암호 (0) | 2021.08.20 |
이상한 문자 만들기 (0) | 2021.08.14 |
자릿수 더하기 (0) | 2021.08.13 |
자연수 뒤집어 배열로 만들기 (0) | 2021.08.11 |