-
[프로그래머스] 최대공약수와 최소공배수Engineering WIKI/Programmers 2022. 4. 26. 15:44
코딩테스트 연습 - 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의
programmers.co.kr
내풀이 (성공)
def solution(n, m): answer = [] # GCD for i in range(min(n, m), 0, -1): if n % i == 0 and m % i == 0: answer.append(i) break # LCM for j in range(max(n, m), (n * m) + 1): if j % n == 0 and j % m == 0: answer.append(j) break return answer
다른방법 1
def solution(n, m): gcd = lambda a,b : b if not a%b else gcd(b, a%b) lcm = lambda a,b : a*b//gcd(a,b) return [gcd(n, m), lcm(n, m)]
다른방법 2
def gcd(a, b): return b if a % b == 0 else gcd(b, a % b) def lcm(a, b): return int(a * b / gcd(a, b)) def gcdlcm(a, b): answer = [gcd(a,b), lcm(a,b)] return answer # 아래는 테스트로 출력해 보기 위한 코드입니다. print(gcdlcm(3,12))
'Engineering WIKI > Programmers' 카테고리의 다른 글
[프로그래머스] 핸드폰 번호 가리기 (0) 2022.04.29 [프로그래머스] 하샤드 수 (0) 2022.04.29 [프로그래머스] 평균 구하기 (0) 2022.04.28 [프로그래머스] 콜라츠 추측 (0) 2022.04.27 [프로그래머스] 짝수와 홀수 (0) 2022.04.25 [프로그래머스] 제일 작은수 제거하기 (0) 2022.04.25 [프로그래머스] 정수 제곱근 판별 (0) 2022.04.24 [프로그래머스] 정수 내림차순으로 배치하기 (0) 2022.04.22