[백준] Baekjoon Online Judge
문제
준서는 얼마 전 나머지연산에 대해 배웠다. 양의 정수 N을 다른 양의 정수 M으로 나눈 나머지는 항상 0이상 M-1이하의 정수가 된다는 사실이 신기한 준서는 혼자만의 숫자놀이를 고안했다.
먼저 준서는 양의 정수 X1, X2, X3 3개를 임의로 고른다. 그 후 3개의 양의 정수 P1, P2, P3을 고르는데, P1 > X1, P2 > X2, P3 > X3을 만족하도록 고른다. 준서가 알고 싶은 것은 아래의 조건을 만족하는 가장 작은 양의 정수 N이다.
N을 P1로 나눈 나머지가 X1, P2로 나눈 나머지가 X2, P3로 나눈 나머지가 X3
준서가 선택한 P1, P2, P3, X1, X2, X3가 주어졌을 때, 가장 작은 정수 N을 찾는 프로그램을 작성하시오.
입력
공백으로 구분된 6개의 정수 P1, P2, P3, X1, X2, X3가 순서대로 주어진다. 모든 숫자는 1과 300사이의 정수다.
출력
한 줄에 가장 작은 양의 정수 N을 출력한다.
단, 조건을 만족하는 1,000,000,000미만의 양의 정수가 없을 경우 -1을 출력한다.
풀이
#include <iostream>
using namespace std;
int p1, p2, p3, x1, x2, x3;
int findNum();
int findNum() {
for (int i = 1; i <= p1 * p2 * p3; i++) {
if (i % p1 == x1 && i % p2 == x2 && i % p3 == x3) return i;
}
return -1;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cin >> p1 >> p2 >> p3 >> x1 >> x2 >> x3;
cout << findNum() << '\n';
return 0;
}
1부터 p1 * p2 * p3까지의 숫자를 탐색하여 조건에 맞는 숫자를 답으로 출력한다.
'백준 > C++' 카테고리의 다른 글
[Baekjoon/C++] 33675번 - L-트로미노 타일링 (0) | 2025.04.22 |
---|---|
[Baekjoon/C++] 28064번 - 이민희진 (0) | 2025.04.19 |
[Baekjoon/C++] 25641번 - 균형 잡힌 소떡소떡 (0) | 2025.04.17 |
[Baekjoon/C++] 5988번 - 홀수일까 짝수일까 (0) | 2025.04.17 |
[Baekjoon/C++] 29701번 - 모스 부호 (0) | 2025.04.15 |