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