코딩/백준 (Python)
백준 2981번: 검문 (Python)
접근 최대공약수를 이용하는 문제이다. 세개의 수 A, B, C가 M으로 나누었을 때 나머지 R을 가질 경우 다음과 같이 표현할 수 있다. A = M * a + R B = M * b + R C = M * c + R 이 때, 첫째 줄에서 두번째 줄을, 그리고 두번째 줄에서 세번째 줄을 빼면 다음과 같이 나온다. A - B = M * (a - b) B - C = M * (b - c) A - B와 B - C는 M을 공약수로 가지게 되며, 두 수의 최대공약수를 LCM이라고 할 때, LCM의 약수들은 모두 M이 될 수 있다. 즉 N개의 숫자가 주어질 경우, A-B, B-C 등 N[i] - N[i - 1]은 N - 1개의 숫자로 나타게 되며, N - 1 개의 숫자들의 최대공약수를 구하고, 이 최대공약수의 약수들을 오..
2021. 3. 31. 17:05
최근댓글