Algorithm

[프로그래머스] 숫자의 표현

Sehe_e 2023. 8. 27. 22:26

[프로그래머스] 숫자의 표현

 

사용 입출력 예제

n = 15
result = 4

n = 20
result = 2

 

n이 홀수일 때 가능한 경우의 수 : 자기자신, n//2+(n//2+1), n의 약수 * 홀수의 값이 n일 때

ex) n = 15    // 15 (자기자신), 7+8 (n//2+(n//2+1)), 1+2+3+4+5 (약수 3 * 홀수 5), 4+5+6 (약수 5 * 홀수 3)

 

n이 짝수일 때 가능한 경우의 수 : 자기자신, n의 약수 * 홀수의 값이 n일 때

ex) n = 20    // 20 (자기자신), 2+3+4+5+6 (약수 4 * 홀수 5)

 

 


1)

정확성 & 효율성 테스트

더보기

 

정확성 테스트
테스트 1 통과 (0.00ms, 10.1MB)
테스트 2 통과 (0.03ms, 10.3MB)
테스트 3 통과 (0.02ms, 10.1MB)
테스트 4 통과 (0.04ms, 10.2MB)
테스트 5 통과 (0.01ms, 10.2MB)
테스트 6 통과 (0.00ms, 10.1MB)
테스트 7 통과 (0.04ms, 10MB)
테스트 8 통과 (0.01ms, 10MB)
테스트 9 통과 (0.01ms, 10.1MB)
테스트 10 통과 (0.04ms, 10.2MB)
테스트 11 통과 (0.04ms, 10.1MB)
테스트 12 통과 (0.02ms, 10MB)
테스트 13 통과 (0.05ms, 9.98MB)
테스트 14 통과 (0.04ms, 9.94MB)
테스트 15 통과 (0.00ms, 10.2MB)
테스트 16 통과 (0.00ms, 10.1MB)
테스트 17 통과 (0.01ms, 10.2MB)
테스트 18 통과 (0.00ms, 10.2MB)
 
효율성 테스트
테스트 1 통과 (0.69ms, 10.3MB)
테스트 2 통과 (0.54ms, 10.1MB)
테스트 3 통과 (0.68ms, 10.2MB)
테스트 4 통과 (0.36ms, 10.1MB)
테스트 5 통과 (0.35ms, 10.1MB)
테스트 6 통과 (0.68ms, 10.2MB)
# 1)
def solution(n):
    count = 1
    for i in range(2, n):
        if n % i == 0 and i % 2 != 0:
            count += 1

    if n % 2 == 0 or n == 1:
        return count
    return count + 1

 

 


2)

정확성 & 효율성 테스트

더보기
 
정확성 테스트
테스트 1 통과 (0.00ms, 10.2MB)
테스트 2 통과 (0.03ms, 9.94MB)
테스트 3 통과 (0.04ms, 9.93MB)
테스트 4 통과 (0.03ms, 10.2MB)
테스트 5 통과 (0.01ms, 9.91MB)
테스트 6 통과 (0.01ms, 9.94MB)
테스트 7 통과 (0.02ms, 10MB)
테스트 8 통과 (0.02ms, 10.2MB)
테스트 9 통과 (0.01ms, 10.2MB)
테스트 10 통과 (0.06ms, 10.1MB)
테스트 11 통과 (0.04ms, 10MB)
테스트 12 통과 (0.03ms, 9.96MB)
테스트 13 통과 (0.03ms, 9.97MB)
테스트 14 통과 (0.02ms, 10.1MB)
테스트 15 통과 (0.00ms, 10.1MB)
테스트 16 통과 (0.00ms, 9.9MB)
테스트 17 통과 (0.01ms, 10.2MB)
테스트 18 통과 (0.01ms, 10.1MB)
 
효율성 테스트
테스트 1 통과 (0.52ms, 10.2MB)
테스트 2 통과 (0.63ms, 10.1MB)
테스트 3 통과 (0.65ms, 10.1MB)
테스트 4 통과 (0.62ms, 10.2MB)
테스트 5 통과 (0.70ms, 10.1MB)
테스트 6 통과 (0.65ms, 10.1MB)
# 2)
def solution(n):
    n_list = len([i for i in range(2, n) if n % i == 0 and i % 2 != 0]) + 1

    if n % 2 == 0 or n == 1:
        return n_list
    return n_list + 1