매일공부

[코딩테스트 python] 순서쌍의 개수(약수) 본문

Programming/코딩테스트

[코딩테스트 python] 순서쌍의 개수(약수)

aram 2023. 4. 5. 00:03

 

 

프로그래머스

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

programmers.co.kr

▲ 저작권 문제로 링크를 통해 확인

 

def solution(n):
    divisor = [] # 약수를 담을 리스트 생성
    cnt = 0
    while n >= cnt: #1부터 n까지 차례로 나누어 떨어지는 확인
        cnt += 1
        if n % cnt == 0: 
            divisor.append(n) # n의 약수이면 리스트에 추가
    return len(divisor) #약수의 개수 반환

순서쌍의 개수 == 약수의 개수
>> 즉 약수의 개수를 구하면 끝

테스트 1 〉 통과 (0.00ms, 10.1MB)
테스트 2 〉 통과 (0.00ms, 10.1MB)
테스트 3 〉 통과 (7.72ms, 10.2MB)
테스트 4 〉 통과 (0.00ms, 10.1MB)
테스트 5 〉 통과 (7.74ms, 10.1MB)
테스트 6 〉 통과 (77.40ms, 10.1MB)
테스트 7 〉 통과 (0.00ms, 10.1MB)
테스트 8 〉 통과 (0.01ms, 10.2MB)
테스트 9 〉 통과 (77.13ms, 10.3MB)
테스트 10 〉 통과 (77.38ms, 9.98MB)

 

def solution(n):
    answer = [cnt for cnt in range(1,n+1) if n % cnt == 0]
    return len(answer)
테스트 1 〉 통과 (0.00ms, 10.1MB)
테스트 2 〉 통과 (0.00ms, 10.1MB)
테스트 3 〉 통과 (10.46ms, 10MB)
테스트 4 〉 통과 (0.00ms, 10.1MB)
테스트 5 〉 통과 (5.35ms, 10.1MB)
테스트 6 〉 통과 (52.28ms, 10.1MB)
테스트 7 〉 통과 (0.00ms, 10.2MB)
테스트 8 〉 통과 (0.01ms, 10.2MB)
테스트 9 〉 통과 (55.54ms, 10.3MB)
테스트 10 〉 통과 (56.56ms, 10.1MB)

 

while과 list comprehension의 비교했을때
확실히 list comprehension가
빠르고 간결해진 것을 알 수 있음

 

728x90
Comments