[Algorithm] streetree
문제직선으로 되어있는 도로의 한 편에 가로수가 임의의 간격으로 심어져있다. KOI 시에서는 가로수들이 모두 같은 간격이 되도록 가로수를 추가로 심는 사업을 추진하고 있다. KOI 시에서는 예산문제로 가능한 한 가장 적은 수의 나무를 심고 싶다.편의상 가로수의 위치는 기준점으로 부터 떨어져 있는 거리로 표현되며, 가로수의 위치는 모두 양의 정수이다.예를 들어, 가로수가 (1, 3, 7, 13)의 위치에 있다면 (5, 9, 11)의 위치에 가로수를 더 심으면 모든 가로수들의 간격이 같게 된다. 또한, 가로수가 (2, 6, 12, 18)에 있다면 (4, 8, 10, 14, 16)에 가로수를 더 심어야 한다.심어져 있는 가로수의 위치가 주어질 때, 모든 가로수가 같은 간격이 되도록 새로 심어야 하는 가로수의 최..
[Algorithm] BasicGCD
◈ 최대공약수 주어진 두 정수의 약수 중에서 가장 큰 공통인 약수이다. 예를 들어, 12와 18의 최대공약수를 구해보자. 12 → 1 2 3 4 6 1218 → 1 2 3 6 9 18 ◈ 최대공약수 관련 법칙 1. 만약 a>b 라면, GCD(a,b) = GCD(a-b,b);2. GCD(a,0) = a ◈ 유클리드 알고리즘 GCD(170, 20) = GCD(150,20)= GCD(130,20)= ...= GCD(10,20)= GCD(0,10)= 10 ◈ 개선된 유클리드 알고리즘 위의 유클리드 알고리즘은 뺄셈을 기반으로 한 알고리즘이다. 하지만 1000, 10000 과 같은 큰 수일 경우는 %을 이용하는 알고리즘이 있다. GCD(a,b) = GCD(a%b,b) = GCD(b, a%b) #includeint ..