순서쌍의 개수 - Python
2023. 9. 21. 03:05ㆍ공부/📝 프로그래머스
def solution(n):
answer = 0
for i in range(1, n+1):
if not (n % i):
answer += 1
return answer
# Test Cases
print(solution(20))
print(solution(100))
평범하게 했습니다.
def solution(n):
return len(list(filter(lambda v: n % (v+1) == 0, range(n))))
신기한 풀이를 발견하여 소개합니다.
- range(n)은 0부터 n-1까지의 정수를 포함하는 리스트를 생성합니다.
- lambda v: n % (v+1) == 0는 람다 함수입니다. 이 함수는 입력값 v에 대해 n이 (v+1)로 나누어 떨어지는지를 검사합니다.
- filter(lambda v: n % (v+1) == 0, range(n))는 range(n)에서 람다 함수를 만족하는 요소들만 필터링하여 리스트로 반환합니다. 이렇게 하면 n의 양수 약수를 나타내는 리스트가 생성됩니다.
- len(list(...))는 앞서 생성한 약수 리스트의 길이를 계산하여 약수의 개수를 반환합니다.
따라서 solution 함수는 주어진 양수 n의 양수 약수 개수를 반환하는 함수입니다.
'공부 > 📝 프로그래머스' 카테고리의 다른 글
편지 - Python (0) | 2023.09.21 |
---|---|
배열 원소의 길이 - Python (0) | 2023.09.21 |
진료 순서 정하기 - Python (0) | 2023.09.21 |
외계행성의 나이 - Python (0) | 2023.09.21 |
짝수의 합 - Python (0) | 2023.09.21 |