728x90
[백준] 1934번 Python 파이썬
https://www.acmicpc.net/problem/1934
< 시간 초과 뜬 코드 >
for문을 이용하여 최소공배수를 구했더니 시간 초과가 떴다.
import sys
n = int(sys.stdin.readline())
result = 1
for i in range(n):
a, b = map(int, sys.stdin.readline().split())
for j in range(max(a, b), a * b + 1):
if j % a == 0 and j % b == 0:
print(j)
break
< 수정된 코드 >
유클리드 호제법을 이용하여 최대공약수를 구한 후 최소공배수를 구해주었다.
import sys
n = int(sys.stdin.readline())
for i in range(n):
a, b = map(int, sys.stdin.readline().split())
at, bt = min(a,b), max(a,b)
while at % bt != 0:
at, bt = bt, at % bt
print((a*b)//bt)
혼자 공부하며 올리는 블로그입니다. 틀린 내용은 댓글 남겨주시면 감사하겠습니다.
'BAEKJOON (Python) > 단계별' 카테고리의 다른 글
BAEKJOON_9012 "괄호" PYTHON (0) | 2023.04.20 |
---|---|
BAEKJOON_13241 "최소공배수" PYTHON (0) | 2023.04.03 |
BAEKJOON_10798 "세로읽기" PYTHON (0) | 2023.03.27 |
‘words = [[0]*15]*5’와 ‘words = [[0 for j in range(15)] for i in range(5)]’의 차이점 (0) | 2023.03.27 |
BAEKJOON_1085 "직사각형에서 탈출" PYTHON (0) | 2023.03.22 |