[백준 17433] 신비로운 수 [Java]
2025. 9. 23. 16:56ㆍPS 풀이/Baekjoon Online Judge
728x90
문제
17433번: 신비로운 수
boj.ma
풀이
문제 요약
N개의 정수를 M으로 나눈 나머지가 동일한 최대 M을 구하자.
아이디어
어떤 수 $a_{1}$, $a_{2}$를 M으로 나눈 나머지가 r로 같아야 한다. 이때 두 수의 차는 $(q_{2} - q_{1})*M$으로 M의 배수가 된다.
N개의 수의 차들에 대해 가장 큰 GCD는, N개의 수의 차들에 대한 가장 큰 공통 약수가 된다.
이는 N개의 모든 수를 나누었을 때 나머지가 전부 같아지는 최대 M이 된다.
Arrays.sort(A);
int[] diff = new int[N - 1];
for (int i = 0; i < N - 1; ++i) {
diff[i] = A[i + 1] - A[i];
}
int commonGCD = diff[0];
for (int i = 1; i < N - 1; ++i) {
commonGCD = gcd(commonGCD, diff[i]);
}
if (commonGCD == 0) {
sb.append("INFINITY\\n");
} else {
sb.append(commonGCD).append("\\n");
}
풀이 시간
20분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/normal/17433.java
problem-solving/baekjoon-online-judge/normal/17433.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
728x90
'PS 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
| [백준 20165] 인내의 도미노 장인 호석 [Java] (0) | 2025.09.29 |
|---|---|
| [백준 31926] 밤양갱 [Java] (0) | 2025.09.28 |
| [백준 22973] 점프 숨바꼭질 [Java] (0) | 2025.09.22 |
| [백준 06591] 이항 쇼다운 [Java] (0) | 2025.09.21 |
| [백준 13414] 수강신청 [Java] (0) | 2025.09.20 |