728x90
동적계획법을 하다가 너무 막혀서 일단 백준 문제중에 쉬워보이는것 위주로..먼저 풀어보기
기초 알고리즘을 좀 익혀야 심화 문제를 풀 수 있을 것 같아서..(당연)
어쨌든 처음에는 그냥 큰 수의 배수를 하나씩 구하면서 작은 수로 나눠지면 출력되게 했는데
시간이 계속 초과되어서 찾아보니 유클리드 호제법이라는게 있었다.
유클리드 호제법
: 큰 수를 작은수로 나누어 나온 나머지로 작은 수가 나누어지면 최대공약수를 구할 수 있다.
ex)
45와 27의 최대공약수를 구해야 하는 경우
1) 45%27=18 (공약수가 아님)
2) 27%18=9(공약수가 아님 )
3)18%9=0(공약수는 9)
def ul(a,b):
while True:
r=a%b
if r==0:
return b
break
else: a,b=b,r
T=int(input())
for _ in range(T):
A,B=map(int,input().split())
mx=ul(max(A,B),min(A,B))
print(A*B//mx)
728x90
'Baekjoon Case' 카테고리의 다른 글
[파이썬 / 백준 1629번] 곱셈 (0) | 2021.10.21 |
---|---|
[파이썬 / 백준 1476번] 날짜 계산 (0) | 2021.10.16 |
[파이썬 / 백준 1006번] 다리놓기 (0) | 2021.10.07 |
[파이썬 / 백준 1005번] ACM CRAFT (0) | 2021.10.05 |
[파이썬 / 백준 12865번] 평범한 배낭 (0) | 2021.09.25 |