순서쌍의 개수 - 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))))

  신기한 풀이를 발견하여 소개합니다.

  1. range(n)은 0부터 n-1까지의 정수를 포함하는 리스트를 생성합니다.
  2. lambda v: n % (v+1) == 0는 람다 함수입니다. 이 함수는 입력값 v에 대해 n이 (v+1)로 나누어 떨어지는지를 검사합니다.
  3. filter(lambda v: n % (v+1) == 0, range(n))는 range(n)에서 람다 함수를 만족하는 요소들만 필터링하여 리스트로 반환합니다. 이렇게 하면 n의 양수 약수를 나타내는 리스트가 생성됩니다.
  4. len(list(...))는 앞서 생성한 약수 리스트의 길이를 계산하여 약수의 개수를 반환합니다.

    따라서 solution 함수는 주어진 양수 n의 양수 약수 개수를 반환하는 함수입니다.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

'공부 > 📝 프로그래머스' 카테고리의 다른 글

편지 - 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