최대공약수와 최대공배수라......
중학교때 배운 개념인데 이걸 파이썬으로 구축 하려니까 처음에 고민을 좀 했다.
결국 생각했던것은 각 숫자마자 약수를 구하고 그 약수들간의 최대공약수를 찾은후에 각값을 나눈 몫을 구해서 곱해주면 최대공약수 최대공배수를 구할 수 있다고 설계 완료
중간에 set의 경우는 2개의 리스트에서 공통된 값을 가져오고 싶었는데 집합을 사용해 교집합(intersection)을 구하기 위해 활용하였다.
엄청 깔끔하진 않으나 그래도 잘 돌아감에 만족!
def solution(n,m):
answer_n=[]
for i in range(1,n+1):
if n%i==0:
answer_n.append(i)
else:
answer_n=answer_n
answer_m=[]
for i in range(1,m+1):
if m%i==0:
answer_m.append(i)
else:
answer_m=answer_m
answer_n1=set(answer_n)
answer_m1=set(answer_m)
z=max(answer_n1.intersection(answer_m1))
answer = [z, z * n // z * m // z]
return answer
'TIL' 카테고리의 다른 글
240628-(P)(40) 3진법 뒤집기 (1) | 2024.06.28 |
---|---|
240627-(S)(39)성분으로 구분한 아이스크림 총 주문량 / (43)조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2024.06.27 |
240626-(S) 조건별로 분류하여 주문상태 출력하기 (0) | 2024.06.26 |
240625-(P) 라이브세션 1회차 과제 (0) | 2024.06.25 |
240625-(P) 37.행렬의 덧셈 (0) | 2024.06.25 |