반응형
코드
def fun1(n, m):
ret_val = 0
for i in range(1, min(n,m) + 1):
if n % i == 0 and m % i == 0:
ret_val = i
return ret_val
def fun2(n, m):
for i in range(max(n,m), n*m + 1):
if i % n == 0 and i % m == 0:
return i
def solution(n, m):
return [fun1(n,m), fun2(n,m)]
실행 결과
정확성 테스트
테스트 1 〉 | 통과 (0.05ms, 10.6MB) |
테스트 2 〉 | 통과 (0.10ms, 10.7MB) |
테스트 3 〉 | 통과 (0.05ms, 10.7MB) |
테스트 4 〉 | 통과 (0.06ms, 10.6MB) |
테스트 5 〉 | 통과 (0.04ms, 10.7MB) |
테스트 6 〉 | 통과 (0.04ms, 10.8MB) |
테스트 7 〉 | 통과 (0.06ms, 10.7MB) |
테스트 8 〉 | 통과 (0.06ms, 10.8MB) |
테스트 9 〉 | 통과 (0.04ms, 10.7MB) |
테스트 10 〉 | 통과 (0.05ms, 10.7MB) |
테스트 11 〉 | 통과 (10.39ms, 10.8MB) |
테스트 12 〉 | 통과 (38.47ms, 10.7MB) |
테스트 13 〉 | 통과 (19.75ms, 10.7MB) |
테스트 14 〉 | 통과 (40.32ms, 10.7MB) |
테스트 15 〉 | 통과 (0.37ms, 10.6MB) |
테스트 16 〉 | 통과 (33.01ms, 10.7MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
총평
우선 최소공배수, 최대공약수를 구하는 함수를 구현하였습니다. 각 for 문의 범위는 위 함수를 참조해주세요. for 문의 범위는 최소공배수, 최대공약수를 구할 때, 달라집니다. 최소공배수의 경우 해당 값이 구해지면 바로 반환을 하는 방식으로 구현하였습니다. 최대공약수는 가장 최근의 값이 크기 때문에 for 문이 끝나면 그 값을 구해줍니다. 지금 문제를 풀이하면 든 생각이지만, 최대 값을 기준으로 -1 씩 내려가면서 그 값을 구한다면 좀 더 성능 좋은 함수를 구현할 것 같습니다. 다음에 푸시는 분들은 해당 방식을 활용하시는 것도 좋을 것 같습니다.
반응형
'SW > 알고리즘' 카테고리의 다른 글
파이썬 : 프로그래머스 : 이상한 문자 만들기 : 풀이 (0) | 2019.09.30 |
---|---|
파이썬 : 프로그래머스 : 정수 내림차순으로 배치하기 : 풀이 (0) | 2019.09.29 |
파이썬 : 프로그래머스 : 제일 작은 수 제거하기 : 풀이 (0) | 2019.09.27 |
파이썬 : 프로그래머스 : 정수 제곱근 판별 : 풀이 (0) | 2019.09.26 |
파이썬 : 프로그래머스 : 자연수 뒤집어 배열로 만들기 : 풀이 (0) | 2019.09.25 |