목록유클리드 호제법 (3)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/2485 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net 풀이 코드 import sys from math import gcd N = int(sys.stdin.readline()) a = int(sys.stdin.readline()) arr = [] for i in range(N-1): num = int(sys.stdin.readline()) arr.append(num - a) a = num g = arr[0] for j in range..
문제 링크 https://www.acmicpc.net/problem/5347 5347번: LCM 첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 코드 from math import gcd def lcm(x,y): return x*y // gcd(x,y) n = int(input()) for _ in range(n): a,b = map(int,input().split()) print(lcm(a,b)) 코드 해석 math의 gcd 함수를 사용하고 유클리드 호재법을 적용 하여 최대공약수를 구한다.
문제 링크 https://www.acmicpc.net/problem/13241 풀이 코드 a, b = map(int, input().split()) def gcd(a, b): while b: mod = b b = a % b a = mod return a print(a*b//gcd(a, b)) 코드 해석 a와 b의 최소공배수는 a x b / gcd(a,b) 이다. gcd를 구하면 된다.