- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12940
- 정답 풀이:
def solution(n, m):
mcd = 0
for i in range(1, max(n,m) + 1):
if n % i == 0 and m % i == 0:
mcd = max(mcd, i)
if mcd == 1:
return [1, n * m]
else:
return [mcd, mcd * (n // mcd) * (m // mcd)]
- 다른 풀이 :
Euclidean Algorithm을 구현한 풀이다
def gcdlcm(a, b):
c, d = max(a, b), min(a, b)
t = 1
while t > 0:
t = c % d
c, d = d, t
answer = [c, int(a*b/c)]
return answer
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(gcdlcm(3,12))
'코딩테스트 > 기출' 카테고리의 다른 글
[2022 kakao tech intership / 프로그래머스] 118667번 : 두 큐 합 같게 만들기 (0) | 2022.09.06 |
---|---|
[2018 KAKAO BLIND RECRUITMENT / 프로그래머스] 17682번 : [1차] 다트 게임 (0) | 2022.08.31 |
[연습문제 / 프로그래머스] 12930번 : 이상한 문자열 만들기 (0) | 2022.08.29 |
[연습문제 / 프로그래머스] 12915번 : 문자열 내 마음대로 정렬하기 (0) | 2022.08.28 |
[Summer/Winter Coding(~2018) / 프로그래머스] 12977번 : 소수 만들기 (0) | 2022.08.20 |